Pierwsze języki programowania były dość proste (na przykład bez rekurencji) i zbliżone do architektury maszyn, która sama w sobie była prosta. Tłumaczenie był wtedy prosty proces .
Kompilator był prostszy jako program niż interpreter, który musiałby przechowywać zarówno dane do wykonania programu, jak i tabele do interpretacji kodu źródłowego. A tłumacz zajmowałby więcej miejsca dla kodu źródłowego programu i tabel symbolicznych.
Pamięć może być tak rzadka (zarówno ze względu na koszty, jak i architekturę), że kompilatory mogą być samodzielnymi programami, które nadpisują system operacyjny (użyłem jednego z nich). System operacyjny musiał zostać ponownie załadowany po kompilacji, aby uruchomić skompilowany program. ... co wyjaśnia, że uruchomienie tłumacza w prawdziwej pracy po prostu nie było opcją .
Prawdą jest, że prostota wymagana od kompilatorów była taka, że kompilatory nie były bardzo dobre (optymalizacja kodu była jeszcze w powijakach, jeśli w ogóle była brana pod uwagę). Ręcznie napisany kod maszynowy miał, przynajmniej do późnych lat sześćdziesiątych, reputację bycia znacznie bardziej wydajnym niż kod generowany przez kompilator. Istniała nawet koncepcja współczynnika rozszerzania kodu , który porównywał rozmiar skompilowanego kodu z pracą bardzo dobrego programisty. Zazwyczaj był większy niż 1 dla większości (wszystkich?) Kompilatorów, co oznaczało wolniejsze programy i, co ważniejsze, większe programy wymagające więcej pamięci. To był wciąż problem w latach sześćdziesiątych.
Zainteresowanie kompilatora polegało na łatwości programowania, szczególnie dla użytkowników, którzy nie byli specjalistami od komputerów, takich jak naukowcy z różnych dziedzin. To zainteresowanie nie było wydajnością kodu. Nadal jednak czas programisty uznano za tani zasób. Kosztem był czas komputerowy, do 1975–1980, kiedy to koszt przeszedł ze sprzętu na oprogramowanie. Co oznacza, że niektórzy profesjonaliści nawet nie traktowali poważnie kompilatora .
Bardzo wysoki koszt czasu komputerowego był kolejnym powodem dyskwalifikacji tłumaczy , do tego stopnia, że sam pomysł byłby śmieszny dla większości ludzi.
Przypadek Lispa jest wyjątkowy, ponieważ był to niezwykle prosty język, który sprawił, że był on wykonalny (a komputer stał się nieco większy w 58). Co ważniejsze, interpreter Lisp był dowodem koncepcji dotyczącej samookreślalności Lisp ( meta-okrężność ), niezależnie od jakiejkolwiek kwestii użyteczności.
Sukces Lisp wynika w dużej mierze z faktu, że ta samookreślalność uczyniła go doskonałym narzędziem do testowania struktur programowania i projektowania nowych języków (a także ze względu na wygodę obliczeń symbolicznych).