Lenguajes preferidos: C/C++, Java y Ruby.
Estoy buscando algunos libros/tutoriales útiles sobre cómo escribir su propio compilador simplemente con fines educativos. Estoy más familiarizado con C/C++, Java y Ruby, así que prefiero recursos que involucren a uno de esos tres, pero cualquier buen recurso es aceptable.
Coincido con la referencia del Dragon Book; en mi opinión, es la guía definitiva para la construcción de compiladores. Sin embargo, prepárate para un poco de teoría dura.
Si quieres un libro más ligero en teoría, Game Scripting Mastery podría ser un mejor libro para ti. Si eres un novato total en la teoría de los compiladores, proporciona una introducción más suave. No cubre métodos de análisis sintáctico más prácticos (opta por el descenso recursivo no predictivo sin discutir el análisis sintáctico LL o LR), y según recuerdo, ni siquiera discute ningún tipo de teoría de optimización. Además, en lugar de compilar a código máquina, compila a un bytecode que se supone que se ejecuta en una VM que también escribes.
Aun así, es una lectura decente, sobre todo si puedes conseguirlo barato en Amazon. Si sólo quieres una introducción fácil a los compiladores, Game Scripting Mastery no es una mala manera de ir. Si quieres ir al grano, entonces deberías conformarte con nada menos que el Dragon Book.
"Construyamos un compilador" es impresionante, pero está un poco anticuado. (No digo que eso lo haga menos válido).
O echa un vistazo a SLANG. Esto es similar a "Let's Build a Compiler" pero es un recurso mucho mejor, especialmente para los principiantes. Viene con un tutorial en pdf que tiene un enfoque de 7 pasos en la enseñanza de un compilador. Añadiendo el enlace de quora ya que tiene los enlaces a todos los diversos puertos de SLANG, en C++, Java y JS, también intérpretes en python y java, originalmente escrito usando C# y la plataforma .NET.