Essentials of Programming Languages ( EOPL ) es un libro de texto sobre lenguajes de programación de Daniel P. Friedman , Mitchell Wand y Christopher T. Haynes .
Autor | Daniel P. Friedman , Mitchell Wand , Christopher T. Haynes |
---|---|
Sujeto | Lenguajes de programación |
Género | Libro de texto |
Editor | Prensa del MIT |
Fecha de publicación | Abril de 2008 (3a ed.) |
Paginas | 416 |
ISBN | 0-262-06279-8 (3.a ed.) |
Clase LC | QA76.7 .F73 2008 |
EOPL examina los principios de los lenguajes de programación desde una perspectiva operativa. Comienza con un intérprete en Scheme para un lenguaje básico funcional simple similar al cálculo lambda y luego agrega sistemáticamente construcciones. Para cada adición, por ejemplo, asignación de variable o control tipo hilo, el libro ilustra un aumento en el poder expresivo del lenguaje de programación y una demanda de nuevos constructos para la formulación de un intérprete directo. El libro también demuestra que las transformaciones sistemáticas, por ejemplo, el estilo de paso de tienda 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 está dedicada 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 se queda con un "intérprete" que utiliza nada más que llamadas de función recursivas de cola y declaraciones de asignación más condicionales. Se vuelve trivial traducir este código a un programa en C o incluso a un programa ensamblador. Como beneficio adicional, el libro muestra cómo calcular previamente ciertas piezas de "significado" y cómo generar una representación de estos cálculos previos. Dado que esta es la esencia de la compilación, el libro también prepara al lector para un curso sobre los principios de la compilación y la traducción de idiomas, un tema relacionado pero distinto. Además del texto que explica los conceptos clave, el libro también incluye una serie de ejercicios que permiten a los lectores explorar diseños alternativos y otros temas. [1]
Al igual que SICP , EOPL representa una desviación significativa del enfoque de libros de texto predominante en la década de 1980. En ese momento, un libro sobre los principios de los lenguajes de programación presentó de cuatro a seis (o incluso más) lenguajes de programación y discutió sus modismos de programación y su implementación a un alto nivel. Los libros más exitosos generalmente cubrían ALGOL 60 (y la llamada familia Algol de lenguajes de programación), SNOBOL , Lisp y Prolog . Incluso hoy en día, una gran cantidad de libros de texto sobre lenguajes de programación son solo encuestas de este tipo, 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 de la facultad, incluidos Mitch Wand y Christopher Haynes, comenzaron a contribuir y convirtieron "La guía del autoestopista en el metauniverso", como la había llamado Kohlbecker, en la encuesta sistemática, basada en intérpretes y transformaciones que es ahora. Durante los 25 años de su existencia, el libro se ha convertido en un casi clásico; ahora se encuentra en su tercera edición, que incluye temas adicionales como tipos y módulos . Su primera parte ahora incorpora ideas sobre programación de HtDP , otro libro de texto poco convencional, que usa Scheme para enseñar los principios del diseño de programas. Los autores, así como Matthew Flatt , han proporcionado recientemente complementos de DrRacket y niveles de idioma para enseñar con EOPL.
EOPL ha generado al menos otros dos textos relacionados: Lisp in Small Pieces [3] de Queinnec [2 ] y Lenguajes de programación de Krishnamurthi : aplicación e interpretación .
Ver también
Referencias
- ^ Prensa, The MIT. "Varita Mitchell" . La prensa del MIT . Consultado el 5 de agosto de 2019 .
- ^ "Página de inicio de Christian Queinnec" . pages.lip6.fr . Consultado el 20 de mayo de 2020 .
- ^ "Libro y código LiSP de C. Queinnec" . pages.lip6.fr . Consultado el 20 de mayo de 2020 .