I compilatori traducono i linguaggi artificiali (come Java e XML) nelle rappresentazioni usate dalle macchine di calcolo: senza di essi non esisterebbe lāinformatica. I concetti della compilazione hanno avuto origine nella linguistica strutturale e nella logica matematica, da cui si sono sviluppati gli algoritmi e i metodi di progetto che hanno realizzato innumerevoli linguaggi. Il testo espone in modo piano e rigoroso le grammatiche formali, gli automi, gli algoritmi di analisi sintattica, le relazioni di traduzione e gli automi traduttori, le traduzioni guidate dalla sintassi e le funzioni semantiche, terminando con lāanalisi statica del flusso nei programmi. Molti esempi, semplici ma realistici, conducono il lettore verso la comprensione analitica e la capacitaĢ progettuale delle tecniche elementari di compilazione. Lāesperienza degli autori nella ricerca e sviluppo su linguaggi e compilatori si riflette nella selezione degli argomenti, sempre motivata da finalitaĢ applicativa e da economia concettuale. Lāopera vuole trovare un giusto medio tra i testi di orientamento puramente teorico e i manuali dei compilatori. Il passaggio dagli algoritmi allāimplementazione eĢ sufficientemente delineato, senza prolissitaĢ, affincheĢ un lettore di cultura informatica possa compierlo da solo. Al termine del percorso, il lettore comprenderaĢ il funzionamento delle parti essenziali di un compilatore, conosceraĢ gli algoritmi usati negli strumenti (scanner parser generator) e potraĢ progettare semplici linguaggi e traduttori sintattici. Il testo eĢ adatto a un corso universitario di cinque crediti per studenti con almeno due anni di informatica alle spalle. Esso eĢ la base per approfondimenti specialistici in piuĢ direzioni, quali: lāottimizzazione del codice-macchina, i sistemi anti-intrusione, i linguaggi interattivi e grafici, i metodi per il trattamento del linguaggio naturale e i linguaggi per lāaccesso ai grandi dati della Rete.
STEFANO CRESPI REGHIZZI, professore emerito del Politecnico di Milano, ha particolarmente contribuito alla ricerca sui linguaggi artificiali e sulla compilazione, e impostato uno dei primi corsi universitari su questa materia in Italia. Ingegnere elettronico, ha conseguito il dottorato in computer science alla UniversitaĢ della California di Los Angeles. Ha insegnato e collaborato con le universitaĢ di Berkeley, Lugano, Pisa, Santiago de Chile, Stanford e Parigi. EĢ autore del libro Linguaggi formali nelle scienze della comunicazione, rivolto a lettori di matrice umanistica.
LUCA BREVEGLIERI eĢ professore al Dipartimento di Elettronica, Informazione e Bioingegneria del Politecnico di Milano, e prima eĢ stato tecnico informatico. Si eĢ laureato e ha conseguito il dottorato di ricerca nello stesso ateneo. Insegna i corsi di Architettura del Calcolatore e Sistemi Operativi, e di Formal Languages and Compilers. Fa ricerca in linguaggi formali e in sicurezza informatica (computer security), in particolare sulla crittografia applicata e sul progetto di architetture sicure per dispositivi mobili e fissi. Ha curate varie traduzioni di noti manuali di architettura del calcolatore.
ANGELO MORZENTI eĢ professore al Dipartimento di Elettronica, Informazione e Bioingegneria del Politecnico di Milano. Nello stesso ateneo si eĢ laureato e ha conseguito il Dottorato di Ricerca. Attualmente insegna i corsi di Formal Languages and Compilers e di Theoretical Computer Science. I suoi interessi scientifici includono, oltre ai linguaggi formali, i metodi e gli strumenti per la specifica, lāanalisi, la verifica e la progettazione di sistemi informatici a elevata criticitaĢ.