Manual universitario gratuito enseña a construir un compilador desde cero

Fuentes: Introduction to Compilers and Language Design

El profesor Douglas Thain, de la Universidad de Notre Dame, ha publicado un libro de texto en abierto titulado Introduction to Compilers and Language Design, pensado para un curso universitario de un semestre. La obra guía al lector en la construcción de un compilador completo para un lenguaje de tipo C, con generación de código ensamblador para arquitecturas x86 y ARM.

El manual está dirigido a estudiantes de grado con experiencia previa en programación en C y conocimientos de estructuras de datos y arquitectura de computadores. Entre sus contenidos figuran temas clásicos como análisis léxico, análisis sintáctico, árbol de sintaxis abstracta, análisis semántico, representación intermedia, organización de memoria, lenguaje ensamblador, generación de código y optimización.

Los capítulos están disponibles en PDF desde una página web oficial (compilerbook.org) y también existe una edición impresa en tapa dura y rústica. El autor autoriza la descarga, impresión y uso de los PDF con fines personales y académicos, pero prohíbe su impresión o distribución comercial. Quienes lo deseen pueden suscribirse a una lista de correo para recibir avisos sobre nuevas ediciones.

El libro se complementa con un repositorio público en GitHub (compilerbook-examples) que aporta escáneres y analizadores sintácticos adicionales, código de partida para el proyecto del compilador y casos de prueba por etapa. Incluye, además, apéndices con un proyecto de curso de muestra, la definición del lenguaje B-Minor y unas convenciones de codificación. Thain invita a los lectores a notificar erratas por correo electrónico para corregirlas en futuras ediciones.