I primi linguaggi di programmazione erano abbastanza semplici (nessuna ricorsione per
esempio) e vicino all'architettura della macchina che era di per sé
semplice. La traduzione era quindi un processo semplice .
Un compilatore era più semplice di un programma che un interprete
dovrebbe tenere insieme entrambi i dati per l'esecuzione del programma e
le tabelle per interpretare il codice sorgente. E l'interprete lo farebbe
prendi più spazio , per se stesso, per il codice sorgente del programma e per il simbolico
tabelle.
La memoria potrebbe essere così scarsa (sia per ragioni di costo che di architettura)
i compilatori potrebbero essere programmi standalone che hanno sovrascritto il file
sistema operativo (ho usato uno di questi). Il sistema operativo doveva essere ricaricato
dopo la compilazione per eseguire il programma compilato. ... che fa
chiarisci che l'esecuzione di un interprete per il lavoro reale non era semplicemente un'opzione .
Per essere vero, la semplicità richiesta ai compilatori era tale
i compilatori non erano molto bravi (l'ottimizzazione del codice era ancora in tenera età, se considerata affatto). Il codice macchina scritto a mano aveva, almeno
fino alla fine degli anni '60 in alcuni luoghi, la reputazione di essere
significativamente più efficiente del codice generato dal compilatore. C'era persino un concetto di rapporto di espansione del codice , che confrontava le dimensioni
di codice compilato per il lavoro di un ottimo programmatore. Di solito era
maggiore di 1 per la maggior parte dei compilatori (tutti?), il che significava programmi più lenti e,
molto più importante, programmi più grandi richiedono più memoria. Questo era
ancora un problema negli anni sessanta.
L'interesse del compilatore era nella facilità di programmazione, specialmente per gli utenti
che non erano esperti di informatica, come gli scienziati in vari
campi. Questo interesse non era il rendimento del codice. Ma ancora, programmatore
il tempo è stato quindi considerato una risorsa economica. Il costo era nel computer
tempo, fino al 1975-1980, quando il costo passò dall'hardware a
Software. Ciò significa che anche i compilatori non sono stati presi seriamente in considerazione
alcuni professionisti .
L'altissimo costo del tempo del computer era ancora un altro motivo
interpreti squalificatori , al punto che l'idea stessa avrebbe avuto
stato ridicolo per la maggior parte delle persone.
Il caso di Lisp è molto speciale, perché era estremamente semplice
linguaggio che lo ha reso fattibile (e il computer era diventato un po '
più grande in 58). Ancora più importante, l'interprete Lisp era una prova di
concetto riguardo all'autodeterminabilità di Lisp ( meta-circolarità ), indipendentemente da qualsiasi
problema dell'usabilità.
Il Lisp successo è dovuto in gran parte al fatto che questa auto-definizione lo ha reso un
ottimo banco di prova per studiare strutture di programmazione e progettare nuovi
lingue (e anche per la sua convenienza per il calcolo simbolico).