È vero che le prime versioni dei compilatori C funzionavano per decine di minuti e richiedevano lo scambio di floppy disk tra le varie fasi?

15

Ispirato da questa domanda .

Ho sentito che alcune versioni molto primitive di compilatori C per personal computer (credo sia intorno al 1980) risiedevano su due o tre floppy disk e quindi per compilare un programma bisognava prima inserire il disco con "first pass" ", esegui il" primo passaggio ", quindi passa al disco con" secondo passaggio ", eseguilo, quindi esegui lo stesso per il" terzo passaggio ". Ogni passava per decine di minuti, quindi lo sviluppatore ha perso molto tempo anche in caso di errori di battitura.

Quanto è realistico questo reclamo? Quali erano le cifre e i dettagli reali?

    
posta sharptooth 24.02.2011 - 09:09
fonte

13 risposte

29

Assolutamente. Ho avuto Microsoft C (versione 1.0, credo) per un computer Zenith Z100 nei primi anni '80 che è stato distribuito su diversi dischi floppy da 5,25 "360. Lo Z100 non aveva un disco rigido, quindi ho dovuto scambiare spesso i floppy mentre passavo tra l'editor, il compilatore e il linker. Compilare e collegare i tempi di diversi minuti non erano inusuali. Deve essere così fastidioso che ho pagato $ 500 per una scheda di espansione di memoria da 2MB (sì, megabyte) in modo da poter caricare tutti i file in un Disco RAM che ha ridotto il tempo a circa 30 secondi Divertente ... Mi è piaciuto molto programmare in quei giorni perché era divertente. Oggi è un lavoro.

    
risposta data 25.02.2011 - 02:03
fonte
9

Probabilmente è vero.

Nei primi tempi dell'home computing (per i bambini / genitori non Hobiest) le macchine non avevano nemmeno dischi rigidi.

I miei genitori avevano un Amstrad il sistema operativo era su 1 dischetto e ti permetteva di selezionare l'applicazione da eseguire che potrebbe hanno richiesto la commutazione di floppy disk (ovvero i word processor erano su un altro disco) che richiedevano un passaggio manuale al disco del sistema operativo se l'applicazione necessitava di un servizio OS specializzato.

Ho avuto una copia di pascal per l'amstrad. Ricordo che l'editore era su 1 disco, ma durante la compilazione richiedeva il passaggio e l'inoltro tra disco1 e disco2 mentre i processi di compilazione continuavano (potrebbe anche aver richiesto un passaggio al disco del sistema operativo in determinati punti dei processi (ma non sono così sicuro fuori)).

Un buon vecchio periodo in cui l'intero sistema operativo era montato su un singolo disco floppy 3.5 (ma non molto altro).

    
risposta data 24.02.2011 - 09:35
fonte
6

I floppy disk furono introdotti nel 1971 - (il floppy disk da 8 pollici, cioè), ma non furono popolari fino alla metà degli anni '70 (con i dischi da 5,25 pollici). C è del 1973, quindi penso che la risposta dipenda in gran parte da ciò che chiami "prima versione" e da quale sia il contesto di compilazione. Pensa a queste variabili:

  • Librerie utilizzate . Quando compili una libreria che non si trova sul disco corrente, dovrai cambiare i floppy disk in mezzo.
  • Complessità del programma ("Hello world" non è la stessa cosa di "Norton Commander")
  • Hardware (personalmente, penso che la compilazione seria sia stata eseguita quasi sempre su mainframe o minicomputer)

Dopo tutto - in questi giorni, la compilazione richiede ancora diversi minuti - basta regolare il compromesso tra l'hardware e la complessità del programma. Solo la parte del disco floppy non è: -).

Prendiamo anche in considerazione il fatto che gran parte del computing negli anni '70 era ancora fatto su una costruzione di mainframe, quindi cambiare i floppy disk è forse alquanto improbabile (almeno in un contesto di produzione aziendale.) Non so se C fosse usato come una lingua "domestica").

    
risposta data 24.02.2011 - 10:46
fonte
6

La mia prima incursione nell'apprendimento di C era su un Commodore 64 (sì, c'era un compilatore per questo), alla fine degli anni '80. Se ricordo male, il compilatore / editor / linker era su un disco e la tua fonte era su un altro e dovevi scambiare almeno una volta durante la fase di compilazione. Certamente, sul C-64, tu dove cambi sempre.

Per quello che vale, ho ancora la scatola e i documenti per quel compilatore. Fa una lettura nostalgica ogni due anni.

    
risposta data 24.02.2011 - 19:37
fonte
6

Il mio primo compilatore C era su un modello 4 TRS-80 in esecuzione CP / M (il primo modello che avrebbe funzionato in modo corretto, non avendo posizioni di memoria basse mappate permanentemente alla ROM). Richiedeva il disco nella prima unità per avere CP / M su di esso.

Quando ho finito con qualunque editor stavo usando, ho dovuto compilare, assemblare e collegare il programma prima che potessi eseguirlo. Ciascuno era il suo processo, avviato alla linea di comando. Il compilatore, l'assemblatore e il linker non si adattano tutti su un floppy. (IIRC, l'assemblatore e il linker potrebbero adattarsi.)

Pertanto, avrei il programma e l'editor sul disco di sistema CP / M e lo scambio nei dischi del compilatore e dell'assemblatore / linker.

Stavo guardando un programma che mi permetteva di eseguire senza avere un disco di sistema, e avevo un piano (che non ricordo più) per impostare le cose in modo da poter creare un piccolo file batch e automatizzare il comando line call, ma non l'ho mai seguito.

Ho praticamente rinunciato a C dopo aver provato ad usare quel sistema, e sono tornato in Pascal per diversi anni.

    
risposta data 24.02.2011 - 19:52
fonte
5

Quando ero al liceo (1989-1990) stavamo facendo pascal su una mela II ed era SLOW . potresti scrivere un programma di 100 righe o giù di lì quando premi la compilazione ci sono voluti alcuni minuti. Ricordo che hai avuto il tempo di andare a colpire la mens room mentre si stava compilando prima che il programma potesse funzionare.

Circa a metà strada ha gettato quel termine ho ottenuto un Mac SE che è stato molto più veloce! Pensa che Pascal è stato molto meglio.

    
risposta data 24.02.2011 - 09:32
fonte
5

Il padre di un mio amico era un programmatore di alto profilo nel corso della giornata. Si stancò di aspettare i risultati delle sue compilazioni, giorni, a volte settimane. Lavorato principalmente da casa, scrivere il programma, dare un pugno alle carte, guidare, dare la scatola all'operatore e discutere per un po 'il suo codice era più importante di tutti gli altri e aspettare.

A volte il codice non ha mai raggiunto il computer, il mio amico mi ha raccontato la storia del tempo in cui suo padre in realtà, intendo davvero arrabbiarsi con lui. Non ha mai veramente capito perché fino a molto più tardi nella vita ma ragazzo questa scatola piena di carte rigide sembrava divertente ... e anche loro pieni di buchi !!!

Un giorno ha preso la discussione per la gestione e credo che abbia fatto un buon caso perché hanno consegnato un mini-computer a casa sua. Devo dire che, a quel punto, il computer ha preso la maggior parte del salotto che, ovviamente, è diventato off limits.

Quindi sì, scambiare i dischi tra le fasi di una compilation è una possibilità definita e fidarsi di me quando dico che è stato un miglioramento VAST da ciò che era disponibile prima !!!

Aspetta almeno 20 anni, immagino che qualcuno faccia una domanda simile a:

È vero che prima, dovevano usare le tastiere per digitare il loro codice lettera per lettera?

    
risposta data 25.02.2011 - 03:17
fonte
3

Non so di C, ma in quel periodo di tempo ho avuto un compilatore Microsoft Fortran che ha richiesto due passaggi. Non solo, ma avevo un programma lungo tutta la pagina che funzionava male (sono sicuro che il codice sorgente era giusto), quindi è stato così, ho rinunciato a compilare del tutto il PC. Erano giorni pre-internet e il PC apparteneva al mio datore di lavoro. Era ancora bello avere il PC, potevo lavorare su un dischetto e portarlo a casa e modificarlo. Quindi, quando sono arrivato al lavoro il giorno dopo, avevo già un programma modificato, piuttosto che appunti scritti a mano.

Anche nei primissimi giorni (iniziando a programmare la primavera di 70), il compilatore era un singolo comando JCL su un sistema operativo mainframe di elaborazione batch. È come descritto sopra. Hai aspettato in fila per un keypunch e hai dato un pugno alle tue carte holerith. Quindi li hai consegnati a un operatore attraverso una finestra. A seconda del colore del tuo PNC (fondamentalmente una carta perforata contenente numero / password dell'account), potresti recuperare i risultati da 1 a 24 ore dopo. Gli studenti di basso livello hanno avuto il successivo giro di boa. E 'stata davvero una sfida per ottenere il compito "ciao mondo" finito nelle due settimane impostate per questo! Un paio di anni più tardi ho avuto un lavoro part-time di programmazione, e potevo uscire al centro del computer durante la notte. Alcuni di noi potrebbero persino alimentare noi stessi il cardreader. Quindi inviamo solo pochi minuti / Ma puoi farlo solo a tarda notte. Tutti i tipi di CS gravi hanno completamente distorto i cicli giorno / notte, poiché l'unica volta in cui si poteva essere produttivi era a tarda notte quando la domanda era bassa.

Quindi, per lungo tempo, i compilatori erano principalmente una cosa per i mainframe (macchine da milioni di dollari di proprietà di organizzazioni molto grandi). E i pochi minicomputer in giro dovevano essere programmati in modi strani e complicati. Ho usato un mini-computer per digitalizzare i sismogrammi. Ci sono voluti circa 10-15 minuti di nastro guida su di esso per avviare il sistema operativo, quindi dovresti fare il tuo lavoro sul tavolo del digitalizzatore.

    
risposta data 25.02.2011 - 04:38
fonte
2

Sì, certo. Non ho usato C su quelle vecchie macchine CP / M, ho usato CB-80. BASIC compilato. (E sì, è stato abbastanza orribile). Su un Heath / Zenith Z-89 con 2 unità floppy che hanno ciascuna 89K.

La compilazione su disco singolo è stata così orribile che è stato un caso di dimenticarlo. Troppo disco che si scambia. 2 unità floppy era LUXURY! Fonte su uno, compilatore sull'altro. Prepara una compilazione e vai a prendere una tazza di tè mentre la macchina fa "clang clang clang" mentre i dischetti sono stati ingaggiati e disinnestati e le teste sono sbattute.

Il boss ha acquistato un disco rigido da 5 MB di circa 18x18x8 pollici, alimentato separatamente e collegato sul retro dell'H89 con un cavo a nastro lungo circa 4 piedi.

Oh la velocità! e la capacità! con 5 MB di spazio di archiviazione.

    
risposta data 25.02.2011 - 03:19
fonte
1

non so di C (il mio primo compilatore C funzionava da un hard disk, e non era veloce), ma il primo Macro Assembler che ho usato (C64) richiedeva il cambio di floppy-disk (uno per caricare l'assemblatore, l'altro per caricare il codice), ci sono voluti 20 minuti per costruire il sistema, e dopo alcuni mesi di sviluppo sia il disco floppy che la scheda madre si sono surriscaldati e sono morti.

    
risposta data 24.02.2011 - 19:22
fonte
1

College nel 1988 = Fortran su PC, 8088 512K (che è un K !!) di ram e una singola unità floppy La compilazione ha richiesto 20-30 minuti, non ho dovuto scambiare floppy perché avevo uno di quei nuovi 720K.

Un Sun3 (68030 1Mb ram) e 24 terminali vt100 per l'intera classe.

    
risposta data 25.02.2011 - 05:40
fonte
1

Prima del tempo, suppongo. La mia prima "vera" programmazione (su PC, comunque) è stata COBOL. A quel tempo usavamo PC IBM. Avevano 2 dischi floppy 360k; uno aveva il compilatore e l'altro aveva il tuo codice sorgente.

So che anche i miei semplici progetti universitari hanno impiegato letteralmente 15 minuti per compilare su quei floppy - mi piacerebbe correre alla caffetteria per un caffè mentre si stava compilando. Poi per il progetto finale ci ho lavorato nella mia casa di amici. Aveva appena ottenuto una macchina nuova di zecca con questa cosa chiamata hard disk: 10 megabyte! Il nostro progetto è stato compilato in meno di un minuto. Mi ha completamente sconvolto.

    
risposta data 25.02.2011 - 09:03
fonte
1

Ho dovuto eseguire il floppy dance sul mio vecchio Mac 128K per varie applicazioni, quindi non ne dubito per un minuto, anche se non ho potuto fornire dettagli. Non sarei sorpreso se questo non fosse parte del motivo per cui gli interpreti di BASIC erano così onnipresenti sui primi personal computer (nessuna necessità di più pass, tabelle dei simboli, ecc.).

    
risposta data 15.05.2012 - 22:16
fonte

Leggi altre domande sui tag