C derleyicilerinin ilk sürümlerinin düzinelerce dakika sürdüğü ve aşamalar arasında disket değiştirmeleri gerektiği doğru mu?


15

Bu sorudan ilham alındı .

Kişisel bilgisayarlar için C derleyicilerinin bazı çok erken sürümlerinin (sanırım 1980 civarında) iki veya üç diskette bulunduğunu duydum ve bir programı derlemek için önce diski "ilk geçiş" ile takmak, çalıştırmak "ilk geçiş", daha sonra "ikinci geçiş" ile diske değiştirin, çalıştırın, sonra "üçüncü geçiş" için aynısını yapın. Her geçiş onlarca dakika sürdü, bu yüzden geliştirici yazım hatası durumunda bile çok zaman kaybetti.

Bu iddia ne kadar gerçekçi? Gerçek rakamlar ve detaylar nelerdi?


2
Kulağa doğru gibi gelebilir. 60'lı yıllarda, programlar delikli kartlar veya kağıt kaset üzerindeyken, bir programcının bir yazım hatası hakkında bilgi edinmek için bir günden fazla beklemesi gerekebilir.
Chris Card

3
İlginç soru. Bu doğruysa, şimdi yaşadığım için mutluyum ve o zaman değil;)
Anto

2
Amstrad kişisel bilgisayarında pascal derlemek için diskleri birden çok kez değiştirmeniz gerektiğini hatırlıyorum .
Martin York

Bir gün beklemekle ilgili şey, işin çalışma süresi kadar değildi, öndeki şeylerin kuyruğuydu. Eskiden kart destenizi göndermek için gideceğiniz yerler vardı ve beyaz paltolu bazı naziler onu alıp boş zamanlarında hazneye koyacaklardı. Çalışma süresi sadece birkaç dakika veya saniye olabilir. İnsan işleme süresi genellikle saat cinsindeydi.
quickly_now

4
Modern bir C ++ projesi gördüm, tam bir temizlik ve yeniden inşa onlarca dakika sürer ve disk takas yerine otomatik olarak işletim sistemi üzerinden sanal bellek sayfaları yapıyor. Neden herkes bugünlerde bilgisayarların bu kadar gelişmiş olduğunu söylüyor? =)
Patrick Hughes

Yanıtlar:


29

Kesinlikle. 80'li yılların başlarında birkaç 5.25 "360K diskette teslim edilen Zenith Z100 bilgisayar için Microsoft C (sürüm 1.0, sanırım) vardı. Z100'ün sabit diski yoktu, bu yüzden geçiş yaparken sık sık disketleri değiştirmek zorunda kaldım birkaç dakika derleme ve bağlantı süreleri olağandışı değildi.Çok can sıkıcı olmak zorunda 2MB (evet, megabayt) bellek genişletme kartı için 500 $ ödedi böylece tüm dosyaları bir RAM diski, zamanı yaklaşık 30 saniyeye indirdi Komik ... Aslında o günlerde programlamayı çok sevdim çünkü eğlenceliydi.


+1 ancak tam tersi bir duygu var. Anwser programınızı okuduktan sonra bugün aniden daha komik geliyor.
Simon Bergot

Microsoft C 1.0 aslında Lattice C'nin yeniden paketlenmiş bir sürümüdür. AFIK, Lattice C ilk MS-DOS C derleyicisidir. Ayrı ayrı çalışan derleyici geçişleri gerektiriyordu.
OldFart

1
Vay! 2 MB! O zamanlar çok büyüktü .
Sistem

IBM PC'lerde Turbo C 1.0 kullandım (doğru hatırlıyorsam gerçekten AT'ler) ve o kadar da kötü değildi. Bunlar daha hızlı makinelerdi.
Robot Gort

9

Muhtemelen doğrudur.

Ev bilgisayarlarının ilk günlerinde (Hobiest değil çocuklar / ebeveynler için) makinelerin sabit sürücüleri bile yoktu.

Ailem işletim sisteminin 1 diskette olduğu bir Amstrad'a sahipti ve disketleri değiştirmeyi gerektirebilecek uygulamayı seçmenize izin verdi (yani kelime işlemcileri başka bir diskte idi), eğer uygulama varsa işletim sistemi diskine manuel bir geçiş gerektiriyor bazı özel işletim sistemi hizmetlerine ihtiyaç duyuyordu.

Amstrad için pascal'ın bir kopyası vardı. Düzenleyicinin 1 diskte olduğunu hatırlıyorum ancak derleme sırasında derleme işlemleri devam ederken disk1 ve disk2 arasında ileri ve geri geçiş yapılması gerekiyordu (hatta işlemlerin belirli noktalarında OS diskine geçiş gerektirmiş olabilir (ancak çok emin kapalı)).

Tüm OS tek bir 3.5 diskete takıldığında eski güzel günler (ama çok fazla değil).


4
Tamamen doğru. "Işık hızı C" derleyicisi macintosh için ve "turbo C" MS-DOS PC'ler için çıktığında kendinden geçmişti çünkü tek bir geçişte koştu.
S.Lott

3.5? Ailemin Amstrad'ın 2,5 "disket sürücüsü vardı. Ve evet, CP | M, 4'lü bir diskin 1. diskindeydi ve Logo 4. diskteydi. Orada başka ne olduğunu hatırlamıyorum.
Peter Taylor

@Peter Taylor: Doğru olma olasılığınız daha yüksek. Çok uzun zaman önceydi (yaşlı hissediyorum).
Martin York

1
Benim için sorun olmadı. C öğrendiğimde, güzel bir büyük 21 MB sabit disk vardı :-)
dan04

1
@ dan04 - Kolektif çim alanlarımızdan kurtulun. Kahretsin kırbaç snappers ve onların fantezi shmancy sabit diskler .....;)
Sistem Aşağı

6

Disketler 1971'de piyasaya sürüldü - (8 inçlik disket, yani), ancak 70'lerin ortalarına kadar (5.25 inçlik disklerle) popüler değildi. C, 1973'ten geldi, bu yüzden cevap büyük ölçüde "ilk versiyon" olarak adlandırdığınız şeye ve derleme bağlamının ne olduğuna bağlı. Şu değişkenleri düşünün:

  • Kullanılmış kütüphaneler . Geçerli diskte olmayan bir kitaplığı derlerken, aradaki disketleri değiştirmeniz gerekir.
  • Programın karmaşıklığı ("Merhaba dünya", "Norton Komutanı" ile aynı değildir)
  • Donanım (kişisel olarak, ciddi derlemenin neredeyse her zaman ana bilgisayarlarda veya mini bilgisayarlarda yapıldığını düşünüyorum)

Sonuçta - bu günlerde derleme hala birkaç dakika sürüyor - sadece donanımınız ve programın karmaşıklığı arasındaki dengeyi ayarlayın. Sadece disket parçası :-) değil.

70'lerde çok fazla bilgi işlemin hala bir terminal-ana bilgisayar yapısı üzerinde yapıldığını da göz önünde bulundurun, bu nedenle disketleri değiştirmek belki biraz olası değildir (en azından bir iş üretimi bağlamında. C'nin "ev" olarak kullanılıp kullanılmadığını bilmiyorum "dil).


5
"İlk" sürüm disketlerde çalışmadı. AT&T'de sabit disk tabanlı bir PDP-11 sistemiydi. Ancak, disketli bir bilgisayarın (CP / M, MS-DOS vb.) İlk sürümünün yönetilmesi oldukça zordu.
S.Lott

60'lardan bir disket (çıkarılabilir disk) gördüğümü hatırlıyorum. 4 Metre ötedeydi. Kontrplak üzerine monte edildi, böylece laboratuvarın etrafında yuvarlanabildiler. Hatırladığım kadarıyla yaklaşık 5 bin.
Martin York

Her derleyici çalıştırması için bir tane değiştirmek istemezsiniz! Bunun bir resmini görmek isterim :-).
vstrien

6

C öğrenmeye ilk adımım, 80'lerin sonunda bir Commodore 64'teydi (evet, bunun için bir derleyici vardı). Doğru hatırlıyorsam, derleyici / düzenleyici / bağlayıcı bir disk üzerindeydi ve kaynağınız başka bir diskteydi ve derleme aşamasında en az bir kez takas yapmanız gerekiyordu. Tabii ki, C-64'te, her zaman takas ettiğiniz yerdesiniz.

Değer için, hala bu derleyici için kutu ve dokümanlar var. Her iki yılda bir nostaljik okuma yapar.


2
Ayrıca 1984'te Commodore 64'te C öğrendim. Derleme sırasında flopileri takas ettiğimi hatırlıyorum. Abacus tarafından bir derleyici kullandığımı söylemek istiyorum, ama bunu doğru hatırlamıyor olabilirim.
Clint Miller

@ Clint, eminim haklısınız. Kutunun adı bu.
DevSolo

@ Clint: Aynı derleyiciye sahibim. Commodore 64, programlamayı öğrenmek için harika bir bilgisayardı. Gerçekten harika şeyler yapmak için yeterince gelişmişti, ancak etkileşime girmeniz gereken tüm donanımı anlayabileceğiniz kadar basitti, çünkü bugün sahip oldukları yüksek seviyeli soyutlama katmanlarına sahip değildi.
Dunk

6

İlk C derleyicim CP / M çalıştıran bir TRS-80 Model 4'teydi (bunu düzgün yapacak ilk model, kalıcı olarak ROM'a eşlenmiş düşük bellek konumlarına sahip değildi). İlk sürücüdeki diskin üzerinde CP / M olması gerekiyordu.

Kullandığım her hangi bir editörle çalıştığımda, programı çalıştırmadan önce derlemek, birleştirmek ve bağlamak zorunda kaldım. Her biri kendi işlemiydi, komut satırında başladı. Derleyici, birleştirici ve bağlayıcı bir diskete sığmaz. (IIRC, birleştirici ve bağlayıcı birbirine sığabilir.)

Bu nedenle, program ve editör CP / M sistem diskinde olurdu ve derleyici ve birleştirici / bağlayıcı diskleri takas olurdu.

Bir sistem diski olmadan çalışmama izin verecek bir programa bakıyordum ve küçük bir toplu iş dosyası oluşturabilmem ve komut satırı çağrılarını otomatik hale getirebilmem için bir şeyler (artık hatırlamıyorum) ayarlamak için bir planım vardı, ama hiç takip etmedim.

Bu sistemi kullanmaya çalıştıktan hemen sonra C'den vazgeçtim ve birkaç yıl boyunca Pascal'a geri döndüm.


Muhtemelen UCSD P-sistemi Pascal?
quickly_now

2
@quickly_now: P-koduna derlenen, ancak UCSD olarak faturalandırılmayan bir şey. Doğal olarak, on yıl önce ondan kurtuldum ve hakkında çok az şey hatırlıyorum. Turbo Pascal'ı aldığımda, hemen hemen her şeyi unuttum.
David Thornley

5

Lisedeyken (1989-1990) Bir elma II'de pascal yapıyorduk ve YAVAŞ oldu . 100 satırlık bir program yazabilirsiniz derleme vurduğunuzda birkaç dakika sürdü. Programın çalışmasından önce derleme sırasında erkek odasına gitmek için zamanınız olduğunu hatırlıyorum.

Yaklaşık yarım yol, çok daha hızlı bir Mac SE aldım! Düşün Pascal çok daha iyiydi.


2
Mac SE'den bahsettiği için +1. Mac SE cihazım için 20 MB harici sabit disk aldığımı hatırlıyorum. O kadar büyüktü ki tüm Mac onun üstüne oturdu.
philosodad

İçim vardı, ama bunlardan birine sahip olabilirdim. Gerçekten çok güzel bir tasarım.
Zachary K

5

Bir arkadaşımın babası o günlerde yüksek profilli bir programcıydı. Derlemelerinin, günlerinin, bazen haftasının sonuçlarını beklemekten yoruldu. Çoğunlukla evden çalışarak programı yazıyor, kartları yumruklıyor, sürüyor, operatöre kutuyu veriyor ve bir süre kodunun diğerlerinden daha önemli olduğunu ve beklediğini savunuyor.

Bazen kod asla bilgisayara ulaşmadı, arkadaşım bana babasının gerçekten zamanının hikayesini anlattı, yani gerçekten ona kızdı. O gerçekten neden çok daha sonra hayatta anlamadı ama çocuk katı kağıt dolu bu kutu eğlenceli gibi görünüyordu ... hey onların delik dolu çok !!!

Bir gün yönetimi tartıştı ve sanırım evine bir mini bilgisayar verdikleri için iyi bir dava açtı. O zamana kadar, bilgisayarın elbette sınırların dışına çıkan oturma odasının çoğunu aldığını belirtmeliyim.

Yani evet, bir derleme aşamaları arasında disk takas kesin bir olasılıktır ve bundan önce mevcut olandan büyük bir gelişme olduğunu söylediğimde bana güven !!!

Sadece 20 yıl kadar bekleyin, birinin şöyle bir soru sorduğunu hayal edebiliyorum:

Önceden kodlarını harf harf yazmak için klavyeleri kullanmak zorunda oldukları doğru mu?


3

C'yi bilmiyorum, ama bir süre için iki geçiş süren bir microsoft Fortran derleyicim vardı. Sadece bu değil, ama yanlış koştu bir sayfa uzunluğunda bir program vardı (kaynak kodun doğru olduğundan eminim), bu yüzden, tamamen PC için derleme vazgeçti. İnternet öncesi günlerdi ve bilgisayar işverenime aitti. PC'ye sahip olmak harikaydı, bir disket üzerinde çalışıp eve götürüp düzenleyebilirim. Ertesi gün işe geldiğimde, el yazısı notlardan ziyade zaten düzenlenmiş bir programım vardı.

Daha önceki günlerde bile (70'in ilkbaharını programlamaya başlıyorum), derleyici, toplu işleme ana bilgisayar işletim sisteminde tek bir JCL komutuydu. Tıpkı yukarıda anlatıldığı gibi. Bir anahtar deliği için sırada beklediniz ve holerith kartlarınızı yumrukladınız. Sonra pencereden bir operatöre teslim ettiniz. PNC'nizin rengine (temel olarak hesap numarası / şifre içeren delikli bir kart) bağlı olarak, sonuçlarınızı 1 ila 24 saat sonra geri alabilirsiniz. Düşük seviyeli öğrenciler daha sonra geri dönüş yapmıştır. Gerçekten "merhaba dünya" ödev bunun için ayrılmış iki hafta içinde bitirmek için bir meydan okuma oldu! Birkaç yıl sonra yarı zamanlı bir programlama işi aldım ve geceleri bilgisayar merkezinde takıldım. Bazılarımız kart okuyucuyu kendimiz bile besleyebiliriz. Sonra geri dönüş sadece birkaç dakika ws / Ama bunu sadece gece geç saatlerde yapabilirdi.

Yani uzun bir süredir, derleyiciler temelde ana bilgisayarlar için bir şeydi (çok büyük kuruluşların sahip olduğu milyon dolarlık sınıf makineleri). Ve etraftaki birkaç mini bilgisayar genellikle garip ve zor yollarla programlanmak zorundaydı. Sismogramları dijitalleştirmek için bir mini bilgisayar kullandım. İşletim sistemini önyüklemek için kağıt bandını yönlendirmek yaklaşık 10-15 dakika sürdü, sonra sayısallaştırıcı tablosunda işinizi yapardınız.


2

Evet elbette. Eski CP / M makinelerinde C kullanmadım, CB-80 kullandım. Derlenmiş BASIC. (Ve evet oldukça korkunçtu). Heath / Zenith Z-89'da her biri 89K olan 2 disket sürücü ile.

Tek disk derleme o kadar korkunçtu ki unut gitsin. Çok fazla disk değişimi. 2 Disket sürücüler LÜKS oldu! Birinde kaynak, diğerinde derleyici. Bir derleme gidiyor ayarlayın ve floppies nişanlandı ve ayrıldı ve kafaları çarptım gibi makine "clang clang clang" giderken bir fincan çay için yürüyün.

Patron, ayrı olarak çalışan ve yaklaşık 4 metre uzunluğunda bir şerit kablo ile H89'un arkasına takılan yaklaşık 18x18x8 inç olan 5 MB'lik bir sabit disk satın aldı.

Ah hız! ve kapasite! 5 MB depolama alanı ile.


1

C'yi bilmiyorum (ilk C derleyicim bir sabit sürücüden çıktı ve hızlı değildi), ancak kullandığım ilk Makro Birleştirici (C64) disket anahtarlama gerektirdi (biri yükleyiciyi yüklemek için, diğeri yüklemek için ), sistemi oluşturmak 20 dakika sürdü ve birkaç aylık geliştirmenin ardından hem disket sürücü hem de anakart aşırı ısındı ve öldü.


1

1988'de Üniversite = Fortran bir PC'de, 8088 512K (bu bir K !!) koç ve tek bir disket sürücü Derleme 20-30 dakika sürdü, o yeni 720K'lardan birine sahip olduğum için flopları takas etmek zorunda kalmadım.

Tüm sınıf için bir Sun3 (68030 1Mb ram) ve 24 vt100 terminali.


1

Zamanımdan önce sanırım. İlk "gerçek" programlamam (PC'lerde zaten) COBOL idi. O zaman IBM PC'leri kullandık. 2 360 bin disket sürücüsü vardı; biri derleyiciye, diğeri kaynak koduna sahipti.

Basit kolej projelerimin bile bu disketler üzerinde derlenmesi 15 dakika sürdüğünü biliyorum - derlerken kahve için kafeteryaya koşardım. Sonra son proje için arkadaşlarımın evinde çalıştım. Sabit disk adı verilen bu şeyle yepyeni bir makine kazanmıştı - 10 megabayt! Projemiz bir dakikadan kısa sürede derlendi. Tamamen aklımı aldı.


Büyük olasılıkla herhangi bir disk arabelleği ayarlamadınız. Sadece birkaçı harikalar yarattı.

1

Çeşitli uygulamalar için eski 128K Mac'imde disket dansı yapmak zorunda kaldım, bu yüzden herhangi bir ayrıntı veremesem de bir dakikalığına bundan şüphe etmiyorum. BASIC çevirmenlerin neden erken kişisel bilgisayarlarda (birden fazla geçişe, sembol tablolarına, vb.) Bu kadar yaygın olmasının bir parçası değilse şaşırmam.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.