Un compilatore traduce un programma scritto in un linguaggio di alto livello in un programma scritto in un linguaggio di livello inferiore. Per gli studenti di informatica, costruire un compilatore da zero è un rito di passaggio: un progetto impegnativo e divertente che offre una visione di molti aspetti diversi dell'informatica, alcuni profondamente teorici e altri altamente pratici. Il libro combina una spiegazione approfondita della teoria che sta alla base dell'approccio contemporaneo alla progettazione dei compilatori con numerosi esempi reali, oltre a una descrizione completa di un piccolo compilatore di linguaggio completo di codice sorgente. Il libro è stato concepito per essere utilizzato in un corso di laurea avanzato che introduca alla progettazione o allo sviluppo di compilatori. Tuttavia, poiché cerca di fornire al lettore tutti gli strumenti e l'esperienza pratica necessari per progettare e programmare un compilatore vero e proprio, sarà utile anche ai professionisti che iniziano o si uniscono a un progetto di scrittura di compilatori.