Apakah benar bahwa versi pertama dari kompiler C berjalan selama puluhan menit dan perlu menukar disket antar tahap?

15

Terinspirasi oleh pertanyaan ini .

Saya mendengar bahwa beberapa versi yang sangat awal dari kompiler C untuk komputer pribadi (saya kira sekitar tahun 1980) berada pada dua atau tiga floppy disk dan untuk mengkompilasi sebuah program, pertama-tama kita harus memasukkan disk dengan "first pass", jalankan "first pass", lalu ubah ke disk dengan "second pass", jalankan itu, lalu lakukan hal yang sama untuk "pass ketiga". Setiap operan berjalan selama puluhan menit sehingga pengembang kehilangan banyak waktu jika terjadi kesalahan ketik.

Seberapa realistis klaim itu? Apa angka dan detail sebenarnya?

sharptooth
sumber
2
Sepertinya itu benar. Pada tahun 60an, ketika program menggunakan kartu berlubang atau pita kertas, seorang programmer mungkin harus menunggu lebih dari sehari untuk mencari tahu tentang kesalahan ketik.
Chris Card
3
Pertanyaan menarik. Jika ini benar, saya senang saya hidup sekarang dan tidak;)
Anto
2
Saya ingat harus menukar disk beberapa kali untuk mengkompilasi pascal di komputer pribadi Amstrad .
Martin York
Nah hal tentang menunggu sehari bukanlah waktu menjalankan pekerjaan, itu adalah antrian barang di depan. Dulu ada tempat-tempat Anda akan pergi untuk menyerahkan kartu kartu Anda dan beberapa nazi dalam jas putih akan mengambilnya dan meletakkan kartu-kartu itu di hopper di waktu luang mereka. Waktu berjalan mungkin hanya beberapa menit atau detik. Waktu pemrosesan manusia sering dalam hitungan jam.
cepat_now
4
Saya telah melihat proyek C ++ modern yang pembersihan penuh dan pembangunan kembali membutuhkan waktu puluhan menit, dan alih-alih disk swap, ia melakukan halaman memori virtual secara otomatis melalui OS. Mengapa semua orang terus mengatakan komputer sangat canggih akhir-akhir ini? =)
Patrick Hughes

Jawaban:

29

Benar. Saya memiliki Microsoft C (versi 1.0, saya pikir) untuk komputer Zenith Z100 di awal 80-an yang dikirimkan pada beberapa disket floppy 360K 5,25 ". Z100 tidak memiliki hard disk sehingga saya harus sering bertukar disket ketika saya beralih antara editor, compiler, dan linker. Mengkompilasi dan menghubungkan waktu beberapa menit bukanlah hal yang aneh. Itu harus sangat mengganggu saya membayar $ 500 untuk papan ekspansi memori 2MB (ya, megabyte) sehingga saya bisa memuat semua file ke dalam RAM disk. Itu mengurangi waktu menjadi sekitar 30 detik. Lucu ... Saya benar-benar menikmati pemrograman kembali pada masa itu karena itu menyenangkan. Hari ini bekerja.

SteveM82
sumber
Namun +1 saya memiliki perasaan sebaliknya. Setelah membaca pemrograman anwser Anda tiba-tiba terasa lebih lucu hari ini.
Simon Bergot
Microsoft C 1.0 sebenarnya adalah versi repackaged dari Lattice C. AFIK, Lattice C adalah kompiler MS-DOS C pertama. Itu memang membutuhkan dua menjalankan kompiler secara terpisah.
OldFart
1
Wow! 2 MB! Itu sangat besar untuk saat itu.
Sistem Down
Saya menggunakan Turbo C 1.0 pada PC IBM (well, benar-benar ATS jika saya ingat dengan benar) dan itu tidak terlalu buruk. Itu adalah mesin yang lebih cepat.
Gort the Robot
9

Itu mungkin benar.

Pada hari-hari awal komputasi di rumah (untuk anak-anak / orang tua bukan Hobiest) mesin bahkan tidak memiliki hard drive.

Orang tua saya memiliki Amstrad OS berada di 1 floppy dan memungkinkan Anda untuk memilih aplikasi untuk menjalankan yang mungkin mengharuskan beralih floppy disk (yaitu pengolah kata pada disk lain) yang memerlukan beralih manual kembali ke disk OS jika aplikasi membutuhkan beberapa layanan OS khusus.

Saya punya salinan pascal untuk amstrad. Saya ingat editor berada di 1 disk tetapi selama kompilasi diperlukan beralih kembali dan maju antara disk1 dan disk2 saat proses kompilasi berlanjut (bahkan mungkin diperlukan beralih ke disk OS pada titik-titik tertentu dalam proses (tetapi saya tidak jadi yakin off)).

Suatu hari tua yang baik ketika seluruh OS dipasang pada floppy disk tunggal 3,5 (tapi tidak banyak lagi)

Martin York
sumber
4
Benar sekali. Ketika kompiler "lightspeed C" keluar untuk macintosh dan "turbo C" untuk PC MS-DOS, kami sangat senang karena itu berjalan dalam sekali jalan.
S.Lott
3,5? Amstrad keluarga saya memiliki floppy drive 2,5 ". Dan ya, CP | M ada di disk 1 dari set 4, dan Logo ada di disk 4. Saya tidak ingat apa lagi yang ada di sana.
Peter Taylor
@ Peter Taylor: Anda kemungkinan besar benar. Sudah lama sekali (saya merasa tua).
Martin York
1
Bukan masalah bagi saya. Ketika saya belajar C, saya memiliki hard drive 21 MB yang bagus :-)
dan04
1
@ dan04 - Keluar dari halaman rumput kita bersama Snappers whipper sialan dan hard drive mewah shmancy mereka .....;)
Sistem Down
6

Floppy disk diperkenalkan pada tahun 1971 - (floppy disk 8 inci, yaitu), tetapi tidak populer sampai pertengahan 70-an (dengan disk 5,25 inci). C berasal dari tahun 1973, jadi saya pikir jawabannya sangat tergantung pada apa yang Anda sebut "versi pertama" dan apa konteks kompilasi itu. Pikirkan variabel-variabel ini:

  • Perpustakaan bekas . Saat mengompilasi pustaka yang tidak ada di disk saat ini, Anda harus mengubah floppy disk di antaranya.
  • Kompleksitas program ("Halo dunia" tidak sama dengan "Komandan Norton")
  • Perangkat keras (secara pribadi, saya pikir kompilasi serius hampir selalu dilakukan pada mainframe atau minicomputer)

Setelah semua - hari ini, kompilasi masih membutuhkan beberapa menit - hanya menyesuaikan tradeoff antara perangkat keras Anda dan kompleksitas program. Hanya bagian floppy disk yang tidak :-).

Perhatikan juga bahwa banyak komputasi pada 70-an masih dilakukan pada konstruksi terminal-mainframe, jadi mengubah floppy disk mungkin agak tidak mungkin (setidaknya dalam konteks produksi bisnis. Saya tidak tahu apakah C digunakan sebagai "rumah" "bahasa).

vstrien
sumber
5
Versi "pertama" tidak berjalan pada disket. Itu adalah sistem PDP-11 berbasis hard disk di AT&T. Namun, versi pertama untuk komputer dengan disket (yaitu CP / M, MS-DOS, dll.) Cukup sulit untuk dikelola.
S.Lott
Saya ingat melihat floppy (removable disk) dari 60-an. Itu adalah 4 kaki. Mereka dipasang di kayu lapis sehingga mereka bisa digulung di sekitar lab. Diadakan sekitar 5K seperti yang saya ingat.
Martin York
Anda tidak ingin mengganti yang satu untuk setiap menjalankan kompiler! Akan sangat senang melihat gambar yang satu itu :-).
vstrien
6

Perampokan pertama saya ke dalam belajar C adalah di Commodore 64 (ya, ada kompiler untuk itu), kembali di akhir 80-an. Jika saya ingat dengan benar, kompiler / editor / penghubung berada di satu disk dan sumber Anda ada di disk lain dan Anda harus bertukar setidaknya satu kali selama tahap kompilasi. Tentu saja, pada C-64, Anda di mana selalu bertukar.

Untuk apa nilainya, saya masih memiliki kotak dan dokumen untuk kompiler itu. Membuat bacaan nostalgia setiap beberapa tahun.

DevSolo
sumber
2
Saya juga belajar C di Commodore 64 pada tahun 1984. Saya ingat bertukar disket saat mengkompilasi dengan sangat jelas. Saya ingin mengatakan bahwa saya menggunakan kompiler oleh Abacus, tetapi saya mungkin tidak mengingatnya dengan benar.
Clint Miller
@Clint, saya yakin Anda benar. Itu nama di kotak.
DevSolo
@Clint: Saya punya kompiler yang sama. Commodore 64 adalah komputer yang luar biasa untuk mempelajari pemrograman. Itu cukup canggih untuk melakukan beberapa hal yang sangat keren tapi cukup sederhana sehingga Anda dapat memahami semua perangkat keras yang Anda butuhkan untuk berinteraksi, yang diperlukan karena mereka tidak memiliki lapisan abstraksi tingkat tinggi saat itu yang mereka miliki saat ini.
Dunk
6

Kompiler C pertama saya menggunakan TRS-80 Model 4 yang menjalankan CP / M (model pertama yang akan melakukannya dengan benar, tidak memiliki lokasi memori rendah yang secara permanen dipetakan ke ROM). Untuk itu diperlukan disk di drive pertama untuk memiliki CP / M di dalamnya.

Setelah saya selesai dengan editor apa pun yang saya gunakan, saya harus mengkompilasi, mengumpulkan, dan menautkan program sebelum saya bisa menjalankannya. Masing-masing adalah prosesnya sendiri, dimulai pada baris perintah. Compiler, assembler, dan linker tidak akan muat di satu disket. (IIRC, assembler dan linker bisa saling cocok.)

Oleh karena itu, saya memiliki program dan editor pada disk sistem CP / M, dan bertukar di disk kompiler dan assembler / linker.

Saya sedang melihat sebuah program yang akan memungkinkan saya untuk menjalankan tanpa memiliki disk sistem, dan saya punya rencana (yang saya tidak ingat lagi) untuk mengatur hal-hal sehingga saya bisa membuat file batch kecil dan mengotomatiskan panggilan baris perintah, tapi saya tidak pernah mengikuti.

Saya cukup banyak menyerah pada C setelah mencoba menggunakan sistem itu, dan kembali ke Pascal selama beberapa tahun.

David Thornley
sumber
Mungkin Pascal P-sistem UCSD?
cepat_now
2
@quickly_now: Sesuatu yang dikompilasi ke p-code, tetapi itu tidak disebut sebagai UCSD. Secara alami, saya menyingkirkannya beberapa dekade yang lalu, dan hanya sedikit mengingatnya. Ketika saya mendapat Turbo Pascal, saya hampir lupa semua tentang itu.
David Thornley
5

Ketika saya masih di SMA (1989-1990) Kami melakukan pascal pada apel II dan itu adalah PERLAHAN . Anda bisa menulis program 100 baris atau lebih ketika Anda menekan kompilasi butuh beberapa menit. Saya ingat bahwa Anda punya waktu untuk pergi ke ruang pria saat sedang menyusun sebelum program akan berjalan.

Sekitar setengah cara melemparkan istilah itu saya mendapat Mac SE yang jauh lebih cepat! Berpikir Pascal jauh lebih baik.

Zachary K
sumber
2
+1 untuk menyebutkan Mac SE. Saya ingat mendapatkan hard drive eksternal 20MB untuk Mac SE saya. Itu sangat besar sehingga seluruh Mac duduk di atasnya.
philosodad
Saya memiliki internal, tetapi saya mungkin memiliki salah satu dari itu juga. Desain yang sangat bagus.
Zachary K
5

Ayah seorang teman saya adalah seorang programmer kelas atas saat itu. Dia lelah menunggu hasil kompilasi, berhari-hari, kadang-kadang minggu. Sebagian besar bekerja dari rumah, menulis program, memencet kartu, menyetir, memberikan kotak kepada operator dan berdebat sebentar sementara kode-nya lebih penting daripada yang lain dan menunggu.

Terkadang kode itu tidak pernah sampai ke komputer, teman saya menceritakan kisah saat ayahnya benar-benar, maksud saya BENAR-BENAR marah padanya. Dia tidak pernah benar-benar mengerti mengapa sampai kemudian dalam kehidupan tetapi anak laki-laki kotak ini penuh dengan kertas kaku tampak seperti menyenangkan ... hei penuh dengan lubang mereka juga !!!

Suatu hari dia membawa argumen ke manajemen dan saya kira Dia membuat kasus yang bagus karena mereka mengirim komputer mini ke rumahnya. Saya harus menyebutkan bahwa, pada saat itu, komputer mengambil sebagian besar ruang tamu yang, tentu saja, menjadi terlarang.

Jadi ya, menukar disk di antara tahap dalam kompilasi adalah kemungkinan yang pasti dan percayalah ketika saya mengatakan itu adalah peningkatan VAST dari apa yang tersedia sebelumnya !!!

Tunggu saja sekitar 20 tahun, saya bisa membayangkan seseorang mengajukan pertanyaan seperti:

Benarkah sebelumnya, mereka harus menggunakan keyboard untuk mengetikkan kode huruf demi huruf?

Newtopian
sumber
3

Saya tidak tahu tentang C, tetapi dalam jangka waktu itu untuk sementara saya punya kompiler Fortran microsoft yang mengambil dua lintasan. Tidak hanya itu, tetapi saya memiliki program sepanjang halaman yang berjalan salah (saya yakin kode sumbernya benar), jadi itu saja, saya menyerah pada kompilasi untuk PC sama sekali. Ini adalah masa pra-internet, dan PC itu milik majikan saya. Itu masih bagus untuk memiliki PC, saya dapat bekerja pada floppy dan membawanya pulang dan mengeditnya. Jadi ketika saya mulai bekerja pada hari berikutnya, saya sudah memiliki program yang diedit, daripada catatan tulisan tangan.

Bahkan pada hari-hari sebelumnya, (saya memulai pemrograman musim semi 70), kompiler adalah perintah JCL tunggal pada batch pemrosesan mainframe OS. Seperti dijelaskan di atas. Anda menunggu dalam antrean untuk menekan tombol, dan meninju kartu holerith Anda. Kemudian Anda menyerahkannya ke operator melalui jendela. Bergantung pada warna PNC Anda (pada dasarnya kartu berlubang yang berisi nomor akun / kata sandi), Anda mungkin mendapatkan hasil Anda dari 1 hingga 24 jam kemudian. Siswa tingkat rendah memiliki perputaran nanti. Benar-benar sebuah tantangan untuk menyelesaikan tugas "hello world" dalam waktu dua minggu! Beberapa tahun kemudian saya mendapat pekerjaan pemrograman paruh waktu, dan bisa nongkrong di pusat komputer di malam hari. Beberapa dari kita bahkan bisa memberi makan cardreader sendiri. Kemudian perputaran hanya beberapa menit / Tapi Anda hanya bisa melakukan ini larut malam.

Jadi untuk waktu yang lama, kompiler terutama untuk mainframe (mesin jutaan dolar yang dimiliki oleh organisasi yang sangat besar). Dan beberapa minicomputer di sekitar sering harus diprogram dengan cara yang aneh dan rumit. Saya menggunakan satu komputer mini untuk mendigitalkan seismogram. Butuh sekitar 10-15 menit membimbing pita kertas melewatinya untuk boot OS, maka Anda akan melakukan hal Anda di atas meja digitizer.

Omega Centauri
sumber
2

Ya tentu saja. Saya tidak menggunakan C pada mesin CP / M lama itu, saya menggunakan CB-80. Dikompilasi BASIC. (Dan ya itu sangat mengerikan). Pada Heath / Zenith Z-89 dengan 2 floppy drive yang masing-masing memegang 89K.

Kompilasi disk tunggal sangat mengerikan, itu adalah kasus lupa itu. Terlalu banyak menukar disk. 2 floppy drive MEWAH! Sumber di satu, kompiler di sisi lain. Mengatur kompilasi pergi dan pergi untuk secangkir teh sementara mesin pergi "dentang dentang" ketika disket bertunangan dan terlepas dan kepala terbentur.

Bos membeli hard drive 5 MB yang berukuran sekitar 18x18x8 inci, bertenaga terpisah, dan dipasang di bagian belakang H89 dengan kabel pita sekitar 4 kaki.

Oh, kecepatannya! dan kapasitas! dengan penyimpanan 5 MB.

dengan cepat_now
sumber
1

tidak tahu tentang C (kompiler C pertama saya lari dari hard drive, dan tidak cepat), tetapi Assembler Makro pertama yang saya gunakan (C64) membutuhkan switching floppy-disk (satu untuk memuat assembler, yang lain untuk memuat kode), butuh 20+ menit untuk membangun sistem, dan setelah beberapa bulan pengembangan baik floppy disk drive dan motherboard kepanasan dan mati.

Steven A. Lowe
sumber
1

Kuliah pada tahun 1988 = Fortran pada PC, 8088 512K (itu adalah K !!) dari ram dan satu floppy drive Mengkompilasi memakan waktu 20-30 menit, saya tidak perlu menukar disket karena saya memiliki salah satu dari 720K yang baru.

Terminal Sun3 (68030 1Mb ram) dan 24 vt100 untuk seluruh kelas.

Martin Beckett
sumber
1

Sebelum waktu saya, saya kira. Pemrograman "nyata" pertama saya (pada PC, toh) adalah COBOL. Saat itu kami menggunakan PC IBM. Mereka memiliki 2 floppy drive 360k; satu memiliki kompiler, dan yang lain memiliki kode sumber Anda.

Saya tahu bahwa proyek kuliah saya yang sederhana membutuhkan waktu 15 menit untuk mengkompilasi berlari pada disket - saya akan lari ke kafetaria untuk minum kopi ketika sedang dikompilasi. Kemudian untuk tugas akhir saya mengerjakannya di rumah teman saya. Dia baru saja mendapatkan mesin baru dengan benda yang disebut hard drive - 10 megabyte! Proyek kami dikompilasi dalam waktu kurang dari satu menit. Itu benar-benar meledakkan pikiran saya.

zpasternack
sumber
Kemungkinan besar Anda tidak memasang buffer disk. Hanya beberapa yang melakukan keajaiban.
1

Saya harus melakukan floppy dance di 128K Mac lama saya untuk berbagai aplikasi, jadi saya tidak meragukan hal ini selama satu menit, meskipun saya tidak bisa memberikan rincian. Saya tidak akan terkejut jika itu bukan bagian dari mengapa penerjemah BASIC ada di mana-mana pada komputer pribadi awal (tidak perlu banyak lintasan, tabel simbol, dll.).

John Bode
sumber