¿Hay una serie más moderna, tal vez orientada a objetos, equivalente a la serie "Let's Build a Compiler" de Jack Crenshaw?¿Existe una versión OO más moderna de "Construyamos un compilador"?
Hace un tiempo tropecé con "Let's Build a Compiler" y no pude resistir la tentación de escribir algún código. Escribí un compilador C de bajada recursiva en C# que daba salida a .NET CIL. "Escribir una vez, fugas en todas partes" era mi lema.
Lástima que no me di cuenta hasta muy tarde que el análisis C es una pesadilla.
Ahora estoy interesado en escribir un compilador Java en Java que emita .NET CIL o ensamblajes con el objetivo de ser auto-bootstrapping. Esperaba que pudiera haber algunos tutoriales más nuevos dando vueltas.
Como un lado, ¿pasarías más tiempo con el diseño inicial o simplemente escribirías un montón de pruebas para apoyar la capacidad de refactorizar sin piedad. Pensando hacia atrás, me estoy inclinando hacia este último. El compilador funcionó, pero el código fue realmente horrible.
Te recomiendo que pruebes con los combinadores de analizadores. Ha sido una experiencia iluminadora para mí. http://en.wikipedia.org/wiki/Parser_combinator – ChaosPandion
Para aquellos que no están familiarizados con él, el tutorial de Crenshaw casi no hace teoría, pero concentra una demostración de cómo resolver un compilador que funcione en un mínimo de código. Lo sorprendente es cómo * mucho * uno puede aprender sobre los compiladores en general. ASÍ QUE, Justin no está pidiendo cualquier referencia de compilación, sino algo muy específico. No sé de uno. – dmckee
@dmckee - Exactamente. Usted comprende mi pregunta por completo. @ ChaosPandion - Gracias. Los combinadores de analizadores son una de las cosas con las que planeo jugar en Scala. Sin embargo, quiero que esté en Java vainilla. – Justin