Los primeros lenguajes de programación fueron bastante simples (sin recurrencia, por ejemplo) y cercanos a la arquitectura de la máquina, que en sí era simple. La traducción fue entonces un proceso sencillo .
Un compilador era más simple como programa que un intérprete que tendría que mantener juntos tanto los datos para la ejecución del programa como las tablas para interpretar el código fuente. Y el intérprete ocuparía más espacio , por sí mismo, para el código fuente del programa y para las tablas simbólicas.
La memoria podría ser tan escasa (tanto por razones de costo como arquitectónicas) que los compiladores podrían ser programas independientes que sobrescribieron el sistema operativo (utilicé uno de estos). El sistema operativo tuvo que volver a cargarse después de compilar para ejecutar el programa compilado. ... lo que deja en claro que ejecutar un intérprete para trabajo real simplemente no era una opción .
Para ser verdad, la simplicidad requerida de los compiladores era tal que los compiladores no eran muy buenos (la optimización del código todavía estaba en la infancia, cuando se consideraba). El código de máquina escrito a mano tenía, al menos hasta finales de los años sesenta en algunos lugares, la reputación de ser significativamente más eficiente que el código generado por el compilador. Incluso había un concepto de relación de expansión de código , que comparaba el tamaño del código compilado con el trabajo de un muy buen programador. Por lo general, era mayor que 1 para la mayoría de los compiladores (¿todos?), Lo que significaba programas más lentos y, mucho más importante, programas más grandes que requerían más memoria. Esto seguía siendo un problema en los años sesenta.
El interés del compilador era la facilidad de programación, especialmente para los usuarios que no eran especialistas en computación, como los científicos en varios campos. Este interés no era el rendimiento del código. Pero aún así, el tiempo del programador se consideraba un recurso barato. El costo fue en tiempo de computadora, hasta 1975-1980, cuando el costo cambió de hardware a software. Lo que significa que incluso el compilador no fue tomado en serio por algunos profesionales .
El costo muy alto del tiempo de computadora fue otra razón para descalificar a los intérpretes , hasta el punto de que la idea misma habría sido ridícula para la mayoría de las personas.
El caso de Lisp es muy especial, porque era un lenguaje extremadamente simple que lo hacía factible (y la computadora se había vuelto un poco más grande en 58). Más importante aún, el intérprete de Lisp fue una prueba de concepto con respecto a la autodefinición de Lisp ( meta-circularidad ), independientemente de cualquier problema de usabilidad.
El éxito de Lisp se debe en gran parte al hecho de que esta autodefinición lo convirtió en un excelente banco de pruebas para estudiar estructuras de programación y diseñar nuevos lenguajes (y también por su conveniencia para la computación simbólica).