Первые языки программирования были довольно простыми (например, без рекурсии) и были близки к машинной архитектуре, которая сама по себе была простой. Перевод был тогда простым процессом .
Компилятор был проще как программа, чем интерпретатор, который должен был бы хранить вместе данные для выполнения программы и таблицы для интерпретации исходного кода. И интерпретатору потребовалось бы больше места для себя, для исходного кода программы и для символьных таблиц.
Памяти может быть так мало (как по стоимости, так и по архитектурным причинам), что компиляторы могут быть автономными программами, которые перезаписывают операционную систему (я использовал одну из них). После компиляции ОС необходимо было перезагрузить, чтобы запустить скомпилированную программу. ... что дает понять, что работать переводчиком для реальной работы просто не вариант .
Чтобы быть правдой, простота, требуемая от компиляторов, была такова, что компиляторы были не очень хороши (оптимизация кода все еще находилась в зачаточном состоянии, когда вообще рассматривалась). Рукописный машинный код имел, по крайней мере, до конца шестидесятых годов, репутацию значительно более эффективного, чем код, сгенерированный компилятором. Была даже концепция коэффициента расширения кода , которая сравнивала размер скомпилированного кода с работой очень хорошего программиста. Обычно оно было больше 1 для большинства (всех?) Компиляторов, что означало более медленные программы и, что гораздо важнее, более крупные программы, требующие больше памяти. Это было все еще проблемой в шестидесятых.
Интерес компилятора заключался в простоте программирования, особенно для пользователей, которые не были специалистами по вычислительной технике, таких как ученые в различных областях. Этот интерес был не производительность кода. Но все же время программиста считалось дешевым ресурсом. Стоимость была в компьютерное время, до 1975-1980, когда стоимость перешла от аппаратного обеспечения к программному обеспечению. Это означает, что некоторые профессионалы не воспринимали всерьез даже компилятор .
Очень высокая стоимость компьютерного времени была еще одной причиной дисквалификации переводчиков , так что сама идея была бы смешной для большинства людей.
Случай с Лиспом очень особенный, потому что это был чрезвычайно простой язык, который сделал его выполнимым (а компьютер стал немного больше в 58). Что еще более важно, интерпретатор Lisp был доказательством концепции самоопределимости Lisp ( мета-цикличности ), независимо от какой-либо проблемы юзабилити.
Успех Lisp во многом связан с тем фактом, что эта самоопределимость сделала его отличным испытательным стендом для изучения структур программирования и разработки новых языков (а также для его удобства для символьных вычислений).