È vero che le prime versioni dei compilatori C hanno funzionato per dozzine di minuti e hanno richiesto lo scambio di floppy disk tra gli stage?


15

Ispirato da questa domanda .

Ho sentito che alcune versioni molto precoci di compilatori C per personal computer (suppongo sia intorno al 1980) risiedevano su due o tre floppy disk e quindi per compilare un programma bisogna prima inserire il disco con "first pass", eseguire il "primo passaggio", quindi passare al disco con "secondo passaggio", eseguirlo, quindi fare lo stesso per il "terzo passaggio". Ogni passaggio è durato per decine di minuti, quindi lo sviluppatore ha perso molto tempo in caso di errore di battitura.

Quanto è realistico questo reclamo? Quali erano figure e dettagli reali?


2
Sembra che potrebbe essere vero. Negli anni '60, quando i programmi erano su schede perforate o nastro adesivo, un programmatore potrebbe dover aspettare più di un giorno per scoprire un errore di battitura.
Chris Card,

3
Domanda interessante. Se questo fosse vero, sono contento di vivere ora e non allora;)
Anto

2
Ricordo di aver dovuto scambiare più volte i dischi per compilare pascal sul personal computer Amstrad .
Martin York,

Beh, il fatto di aspettare un giorno non era tanto il tempo di esecuzione del lavoro, ma la fila di cose davanti. C'erano posti in cui andavi a presentare il tuo mazzo di carte e alcuni nazisti in camice bianco lo portavano via e mettevano le carte nella tramoggia a loro piacimento. Il tempo di esecuzione potrebbe essere solo di pochi minuti o secondi. Il tempo di elaborazione umano era spesso in ore.
quick_now

4
Ho visto i moderni progetti C ++ che una completa pulizia e ricostruzione richiede dozzine di minuti e invece di scambi di dischi esegue automaticamente pagine di memoria virtuale tramite il sistema operativo. Perché tutti continuano a dire che i computer sono così avanzati in questi giorni? =)
Patrick Hughes,

Risposte:


29

Assolutamente. Avevo Microsoft C (versione 1.0, credo) per un computer Zenith Z100 nei primi anni '80 che veniva consegnato su diversi floppy disk da 5,25 "360K. Lo Z100 non aveva un disco rigido, quindi dovevo scambiare frequentemente floppy mentre passavo tra l'editor, il compilatore e il linker. I tempi di compilazione e collegamento di diversi minuti non erano insoliti. È diventato così fastidioso che ho pagato $ 500 per una scheda di espansione della memoria da 2 MB (sì, megabyte) in modo da poter caricare tutti i file in un Disco RAM. Questo ha ridotto i tempi di circa 30 secondi. Divertente ... A quei tempi mi piaceva molto programmare perché era divertente. Oggi è lavoro.


+1 comunque ho la sensazione opposta. Dopo aver letto la tua programmazione della risposta, oggi ti senti improvvisamente più divertente.
Simon Bergot,

Microsoft C 1.0 era in realtà una versione riconfezionata di Lattice C. AFIK, Lattice C è stato il primo compilatore C MS-DOS. Richiedeva due passaggi del compilatore eseguiti separatamente.
OldFart

1
Woah! 2 MB! È stato enorme per il momento.
Sistema inattivo

Ho usato Turbo C 1.0 sui PC IBM (beh, davvero AT se ricordo bene) e non era poi così male. Quelle erano macchine più veloci, però.
Gort il robot,

9

È probabilmente vero.

Agli albori dell'home computing (per i bambini / i genitori non i più potenti) le macchine non avevano nemmeno i dischi rigidi.

I miei genitori avevano un Amstrad il sistema operativo era su 1 floppy e ti permetteva di selezionare l'applicazione da eseguire che potrebbe aver richiesto la commutazione di floppy disk (cioè i word processor erano su un altro disco) che richiedeva un passaggio manuale al disco OS se l'applicazione aveva bisogno di un servizio operativo specializzato.

Ho avuto una copia di Pascal per l'amstrad. Ricordo che l'editor si trovava su 1 disco ma durante la compilazione richiedeva il passaggio avanti e indietro tra disk1 e disk2 mentre i processi di compilazione continuavano (potrebbe anche aver richiesto un passaggio al disco del sistema operativo in determinati punti dei processi (ma che non lo sono così sicuro off)).

A i bei vecchi tempi in cui l'intero sistema operativo si inseriva su un singolo floppy disk 3.5 (ma non molto altro).


4
Completamente vero. Quando il compilatore "Lightspeed C" è uscito per macintosh e "turbo C" per i PC MS-DOS, siamo rimasti estasiati perché è stato eseguito in un unico passaggio.
S. Lott,

3.5? Amstrad della mia famiglia aveva un disco floppy da 2,5 ". E sì, CP | M era sul disco 1 di un set di 4 e Logo era sul disco 4. Non ricordo cos'altro c'era.
Peter Taylor,

@Peter Taylor: è più che probabile che tu abbia ragione. È passato tanto tempo (mi sento vecchio).
Martin York,

1
Non è stato un problema per me. Quando ho imparato C, avevo un bel disco rigido da 21 MB :-)
dan04

1
@ dan04 - Scendi dai nostri prati collettivi. Maledetti dentici e i loro fantasiosi dischi rigidi luccicanti .....;)
Sistema

6

I floppy disk furono introdotti nel 1971 - (il floppy disk da 8 pollici, cioè), ma non erano 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 chiamate "prima versione" e dal contesto di compilazione. Pensa a queste variabili:

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

Dopotutto - in questi giorni, la compilazione richiede ancora alcuni minuti - basta regolare il compromesso tra l'hardware e la complessità del programma. Solo la parte del dischetto non è :-).

Prendi anche in considerazione il fatto che gran parte dell'informatica negli anni '70 era ancora fatta su una costruzione di terminal-mainframe, quindi cambiare dischi floppy è forse alquanto improbabile (almeno in un contesto di produzione aziendale. Non so se C sia stato usato come "casa" " linguaggio).


5
La "prima" versione non funzionava su floppy. Era un sistema PDP-11 basato su disco rigido presso AT&T. Tuttavia, la prima versione per un computer con floppy (cioè CP / M, MS-DOS, ecc.) Era piuttosto difficile da gestire.
S. Lott,

Ricordo di aver visto un floppy (disco rimovibile) degli anni '60. Era largo 4 piedi. Sono stati montati su compensato in modo che possano essere fatti rotolare intorno al laboratorio. Tenuto circa 5K come ricordo.
Martin York,

Non si desidera sostituire quello per ogni esecuzione del compilatore! Mi piacerebbe vedere una sua foto :-).
venerdì

6

La mia prima incursione nell'apprendimento del C era su un Commodore 64 (sì, c'era un compilatore per questo), alla fine degli anni '80. Se ricordo bene, 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. Certo, sul C-64, dove si scambiava sempre.

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


2
Ho anche imparato C sul Commodore 64 nel 1984. Ricordo di aver scambiato i floppy durante la compilazione abbastanza chiaramente. Voglio dire che stavo usando un compilatore di Abacus, ma potrei non ricordarmelo correttamente.
Clint Miller,

@Clint, sono sicuro che tu abbia ragione. Questo è il nome sulla scatola.
DevSolo,

@Clint: ho avuto lo stesso compilatore. Il Commodore 64 era un fantastico computer su cui imparare a programmare. Era abbastanza avanzato per fare cose davvero interessanti ma abbastanza semplice da poter comprendere tutto l'hardware necessario per interagire, il che era necessario perché non avevano i livelli di astrazione di alto livello di allora.
Dunk

6

Il mio primo compilatore C era su un TRS-80 Model 4 con CP / M in esecuzione (il primo modello che lo avrebbe fatto correttamente, senza posizioni di memoria insufficiente mappate in modo permanente su ROM). Richiedeva che il disco nella prima unità avesse CP / M su di esso.

Una volta finito con qualsiasi editor che stavo usando, ho dovuto compilare, assemblare e collegare il programma prima di poterlo eseguire. Ognuno era il proprio processo, avviato dalla riga di comando. Il compilatore, l'assemblatore e il linker non si adatterebbero tutti su un floppy. (IIRC, l'assemblatore e il linker potrebbero adattarsi insieme).

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

Stavo guardando un programma che mi avrebbe permesso di funzionare senza un disco di sistema, e avevo un piano (che non ricordo più) di configurare le cose in modo da poter creare un piccolo file batch e automatizzare le chiamate da riga di comando, ma non l'ho mai seguito.

Ho praticamente rinunciato a C dopo aver provato a utilizzare quel sistema e sono tornato su Pascal per diversi anni.


Probabilmente il sistema P UCSD Pascal?
quick_now

2
@quickly_now: qualcosa che è stato compilato in codice p, ma non è stato fatturato come UCSD. Naturalmente, me ne sono sbarazzato decenni fa e me ne ricordo poco. Quando ho ricevuto Turbo Pascal, mi sono quasi dimenticato di tutto.
David Thornley,

5

Quando ero al liceo (1989-1990) stavamo facendo pascal su una mela II ed era LENTO . potresti scrivere un programma di circa 100 righe quando fai clic su compila ci vogliono alcuni minuti. Ricordo che hai avuto il tempo di andare nella stanza degli uomini mentre si stava compilando prima che il programma potesse essere eseguito.

Circa a metà del termine ho ottenuto un Mac SE che era molto più veloce! Pensa che Pascal fosse molto meglio.


2
+1 per menzionare il Mac SE. Ricordo di aver ottenuto un disco rigido esterno da 20 MB per il mio Mac SE. Era così grande che l'intero Mac era seduto su di esso.
philosodad,

Avevo un interno, ma potrei averne avuto anche uno. Davvero un bel design.
Zaccaria K,

5

Il padre di un mio amico era un programmatore di alto profilo nel passato. Si stancò di aspettare i risultati delle sue compilazioni, giorni, a volte settimana. Lavorava principalmente da casa, scriveva il programma, perforava le carte, andava oltre, consegnava la scatola all'operatore e discuteva per un po 'che il suo codice era più importante di tutti gli altri e aspettava.

A volte il codice non ha mai raggiunto il computer, il mio amico mi ha raccontato la storia del tempo in cui suo padre davvero, voglio dire, si è davvero arrabbiato con lui. Non ha mai veramente capito perché fino a tardi nella vita, ma ragazzo questa scatola piena di carte rigide sembrava divertente ... ehi, anche loro pieni di buchi !!!

Un giorno ha portato l'argomento alla direzione e immagino che abbia fatto un buon caso perché hanno consegnato un mini-computer a casa sua. Devo dire che, a quel punto, il computer occupava la maggior parte del soggiorno che, ovviamente, era vietato.

Quindi sì, scambiare i dischi tra le fasi in una compilation è una possibilità definita e fidati di me quando dico che è stato un VAST miglioramento rispetto a quello che era disponibile prima !!!

Aspetto solo 20 anni o giù di lì, posso immaginare che qualcuno faccia una domanda un po 'come:

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


3

Non so di C, ma in quel lasso di tempo ho avuto un compilatore di Microsoft Fortran che ha preso due passaggi. Non solo, ma avevo un programma lungo una pagina che funzionava in modo errato (sono sicuro che il codice sorgente fosse giusto), quindi era così, ho rinunciato a compilare per il PC del tutto. Erano giorni pre-internet e il PC apparteneva al mio datore di lavoro. È stato comunque fantastico avere il PC, ho potuto lavorare su un floppy e portarlo a casa e modificarlo. Quindi, quando ho dovuto lavorare il giorno successivo, avevo già un programma modificato, piuttosto che appunti scritti a mano.

Anche nei giorni precedenti, (ho iniziato a programmare la primavera del 70), il compilatore era un singolo comando JCL su un sistema operativo mainframe di elaborazione batch. Proprio 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 scheda perforata contenente il numero account / password), potresti ottenere i risultati da 1 a 24 ore dopo. Gli studenti di basso livello hanno avuto la svolta successiva. È stata davvero una sfida per finire il compito "ciao mondo" nelle due settimane previste per questo! Un paio di anni dopo ho avuto un lavoro di programmazione part-time e di notte potevo frequentare il centro di calcolo. Alcuni di noi potrebbero persino alimentare noi stessi il cardreader. Quindi inversione di marcia solo pochi minuti / Ma potresti farlo solo a tarda notte.

Quindi, per molto tempo, i compilatori erano principalmente una cosa per i mainframe (macchine di classe da milioni di dollari di proprietà di organizzazioni molto grandi). E i pochi minicomputer in circolazione spesso dovevano essere programmati in modi strani e complicati. Ho usato un mini-computer per digitalizzare i sismogrammi. Ci sono voluti circa 10-15 minuti per guidare il nastro di carta attraverso di esso per avviare il sistema operativo, quindi avresti fatto le tue cose sul tavolo del digitalizzatore.


2

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

La compilazione di un singolo disco è stata così orribile da dimenticare. Scambio di dischi eccessivo. 2 unità floppy era LUSSO! Fonte su uno, compilatore sull'altro. Prepara una compilazione e vai via per una tazza di tè mentre la macchina "clang clang clang" mentre i floppy venivano impegnati e disimpegnati e le teste sbattevano intorno.

Il boss acquistò un disco rigido da 5 MB che era di circa 18x18x8 pollici, alimentato separatamente e attaccato 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.


1

non conosco C (il mio primo compilatore C è stato eseguito da un disco rigido e non è stato veloce), ma il primo Macro Assembler che ho usato (C64) ha richiesto la commutazione del dischetto (uno per caricare l'assemblatore, l'altro per caricare il codice), ci sono voluti più di 20 minuti per costruire il sistema, e dopo alcuni mesi di sviluppo sia l'unità floppy che la scheda madre si sono surriscaldate e sono morte.


1

College nel 1988 = Fortran su un PC, 8088 512 K (che è una K !!) di RAM e un singolo floppy drive La compilazione ha richiesto 20-30 minuti, non ho dovuto scambiare floppy perché ne avevo uno nuovo 720K.

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


1

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

So che anche i miei semplici progetti universitari hanno richiesto letteralmente 15 minuti per essere compilati in esecuzione su quei floppy: sarei corso alla caffetteria per un caffè mentre si stava compilando. Quindi per il progetto finale ci ho lavorato a casa dei miei amici. Aveva appena ottenuto una macchina nuova di zecca con questa cosa chiamata disco rigido: 10 megabyte! Il nostro progetto è stato compilato in meno di un minuto. Mi ha fatto impazzire completamente.


Molto probabilmente non hai configurato alcun buffer del disco. Solo alcune hanno fatto meraviglie.

1

Ho dovuto fare il floppy dance sul mio vecchio Mac da 128 KB per varie applicazioni, quindi non ne dubito per un minuto, anche se non sono riuscito a fornire alcun dettaglio. Non sarei sorpreso se questo non fosse parte del motivo per cui gli interpreti BASIC erano così onnipresenti sui primi personal computer (senza necessità di più passaggi, tabelle di simboli, ecc.).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.