pensé capítulo 8 de Kernighan y Pike de El Entorno de programación Unix fue excelente. Cubre gran parte de la programación en el entorno Unix, todo mientras se implementa un lenguaje de programación.
El capítulo 8 se llama Desarrollo del programa. Discute el desarrollo de un programa no trivial a través de varias etapas de diseño. Ese programa no trivial es hoc, la calculadora de orden alto. Para obtener más detalles sobre el modo, consulte http://en.wikipedia.org/wiki/Hoc_(programming_language)
Es una gran introducción práctica para implementar un lenguaje sencillo utilizando las herramientas estándar yacc y lex. Yacc y Lex son demasiado para cubrir aquí, pero al seguir los ejemplos de este libro y hacer los ejercicios, desarrollarás una comprensión de ellos.
El desarrollo dura a través de varias fases; en la primera fase, ni siquiera tiene variables en el idioma. En la tercera etapa, tiene variables, constantes definidas (PI, E, etc.) y funciones incorporadas, como sin() y log(). En la última etapa, tienes el lenguaje completamente implementado.
Ahora, ¿es el mejor idioma para intentar implementar? No tengo ni idea, pero sé que El entorno de programación Unix fue un excelente libro para leer en paralelo con un libro de compilación tradicional. Cuando comencé a leer el libro compilador de Aho (librito de dragones) volví a leer el capítulo 8 de TUPE y seguí los ejemplos y ejercicios. Claro, cualquiera puede volver a escribir el código del libro, pero los ejercicios requieren que entiendas bien lo que está sucediendo.
Al final, no creo que importe exactamente qué idioma eliges hacer, sino el proceso que sigues mientras lo implementas.
puede intentar implementar un subconjunto de Pascal; echa un vistazo a [Pascal Implementation] (http://homepages.cwi.nl/~steven/pascal/book/) –