compiler construction - Diseño de compilador Lisp
compiler-construction (5)
Estoy buscando un libro de diseño de compilador. Lo estoy aprendiendo en la universidad; Pero las conferencias nunca fueron hechas para mí. Además, en mi universidad no son muy prácticas y creo que incluso si sinceramente hago el curso sobre autómatas finitos y diseño de compiladores, no sabré cómo implementar un compilador. Por lo tanto, estoy buscando libros sobre la implementación de un compilador. Me parece que la "Implementación del compilador moderno" es buena. Tenía tres opciones de lenguaje y elegí el libro C porque C es un lenguaje pequeño, habrá más cosas que hacer y más que aprender durante la práctica. Sin embargo, quería aprender el curso diseñando un compilador para Lisp o python [también puede estar en el mismo idioma]; Pero no pude encontrar mucho material disponible. Lisp es un lenguaje antiguo y debería haber alguna documentación sobre el diseño de un compilador para él. Necesito sus sugerencias con respecto a esto.
Gracias.
Aquí hay una gran descripción general de un diseño de compilador para Esquema: Un enfoque incremental para la construcción del compilador . Es un artículo bastante breve que describe cómo construir un compilador de código de máquina para Scheme "desde cero".
Esto no es exactamente para Lisp, sino para Scheme (un derivado lisp), pero usamos este texto libre (como en cerveza) en mi clase de lenguajes de programación. Aquí está el enlace:
http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/
Sin embargo, tenga en cuenta que están enseñando a escribir un intérprete de Scheme en nada menos que Scheme. Algo así te da vueltas a la mente al principio, pero se aclara después de un tiempo. No estoy exactamente seguro de si esto es lo que estás buscando, pero es un comienzo e ilustra algunas de las cosas más importantes en las que debes pensar.
Estudia estos libros en orden:
Una vez que su sistema Lisp básico esté funcionando, probablemente desee implementar ''lenguajes especializados'' además de eso. Luego, libros como The Art of Metaobject Protocol se convierten en una referencia esencial.
Nunca lo leí, pero una vez hubo un libro llamado "Lisp in Small Pieces" que se suponía que era bastante bueno para tus propósitos
Lisp en trozos pequeños es probablemente el mejor libro sobre la implementación de Lisp. Muy recomendable. Probablemente disponible a través de algún servicio de libros usados. Puede ser costoso, incluso como un libro usado. Es una traducción del original francés. También hay una versión revisada en francés, que no ha sido traducida al inglés, desafortunadamente.
También recomendaría Paradigmas de la Inteligencia Artificial, Estudios de caso en Common Lisp por Peter Norvig. Contiene la descripción de un compilador Scheme escrito en Common Lisp. En general, este es un libro excepcional.
También vea este Biblography en técnicas de implementación de esquema .
Para Common Lisp hay artículos disponibles y algunos compiladores de Common Lisp vienen con un poco de documentación de implementación y compilaciones internas. Normalmente, el compilador no se puede ver de forma aislada, pero se debe ver en combinación con el tiempo de ejecución que compila (GC, conjuntos de instrucciones, gestión de memoria en general, subprocesos, interfaces FFI, ...). Ver por ejemplo el Diseño de CMU Common Lisp .