Essentials of Programming Languages ( EOPL ) es un libro de texto sobre lenguajes de programación escrito por Daniel P. Friedman , Mitchell Wand y Christopher T. Haynes .
EOPL examina los principios de los lenguajes de programación desde una perspectiva operativa. Comienza con un intérprete en Scheme para un lenguaje funcional básico similar al cálculo lambda y luego añade sistemáticamente construcciones. Con cada adición, por ejemplo, la asignación de variables o el control tipo hilo, el libro ilustra un aumento en la capacidad expresiva del lenguaje de programación y la necesidad de nuevas construcciones para la formulación de un intérprete directo. El libro también demuestra que las transformaciones sistemáticas, como el estilo de paso de almacenamiento o el estilo de paso de continuación , pueden eliminar ciertas construcciones del lenguaje en el que se formula el intérprete.
La segunda parte del libro se dedica a la traducción sistemática del intérprete o intérpretes a máquinas de registro . Las transformaciones muestran cómo eliminar cierres de orden superior, objetos de continuación, llamadas a funciones recursivas y más. Al final, el lector dispone de un "intérprete" que utiliza únicamente llamadas a funciones recursivas de cola, sentencias de asignación y condicionales. Resulta trivial traducir este código a un programa en C o incluso en lenguaje ensamblador. Además, el libro muestra cómo precalcular ciertos elementos de "significado" y cómo generar una representación de estos precálculos. Dado que esta es la esencia de la compilación, el libro también prepara al lector para un curso sobre los principios de compilación y traducción de lenguajes, un tema relacionado pero distinto. Además del texto que explica los conceptos clave, el libro incluye una serie de ejercicios que permiten a los lectores explorar diseños alternativos y otras cuestiones. [ 1 ]
Al igual que SICP , EOPL representa un cambio significativo con respecto al enfoque predominante en los libros de texto de la década de 1980. En aquel entonces, un libro sobre los principios de los lenguajes de programación presentaba entre cuatro y seis (o incluso más) lenguajes de programación y analizaba sus modismos de programación y su implementación a un alto nivel. Los libros más exitosos solían abarcar ALGOL 60 (y la llamada familia de lenguajes de programación Algol), SNOBOL , Lisp y Prolog . Incluso hoy en día, un buen número de libros de texto sobre lenguajes de programación son precisamente ese tipo de panoramas generales, aunque su alcance se ha reducido.
EOPL se inició en 1983, cuando Indiana era uno de los departamentos líderes en investigación de lenguajes de programación. Eugene Kohlbecker, uno de los estudiantes de doctorado de Friedman, transcribió y recopiló sus "311 conferencias". Otros miembros del profesorado, como Mitch Wand y Christopher Haynes, comenzaron a contribuir y transformaron "La guía del autoestopista al metauniverso" —como la había llamado Kohlbecker— en el estudio sistemático, basado en intérpretes y transformaciones, que es hoy. A lo largo de sus 25 años de existencia, el libro se ha convertido en un clásico; actualmente se encuentra en su tercera edición, que incluye temas adicionales como tipos y módulos . Su primera parte incorpora ahora ideas sobre programación de HtDP , otro libro de texto poco convencional, que utiliza Scheme para enseñar los principios del diseño de programas. Los autores, junto con Matthew Flatt , han proporcionado recientemente complementos y niveles de lenguaje para DrRacket para la enseñanza con EOPL.
EOPL ha generado al menos otros dos textos relacionados: Lisp in Small Pieces [ 3 ] de Queinnec [ 2 ] y Programming Languages: Application and Interpretation de Krishnamurthi .
Véase también
Referencias
- Página principal de los autores de Fundamentos de los lenguajes de programación , tercera edición.
- Página principal del libro para la primera edición
- Página de EoPL en Schemewiki
- Libros de programación informática
- Libros de informática
- Temas de lenguajes de programación