Linguaggi e traduttori:
programma del corso
Anno accademico 1997/1998
Orario delle lezioni: lunedi 16-19, martedi 9-11
1. Introduzione ai traduttori e compilatori
- Fasi di compilazione.
- Analisi lessicale.
- Analisi sintattica.
- Analisi semantica.
- Generazione del codice intermedio.
- Ottimizzazione (cenni).
2. Linguaggi formali
- Stringhe, linguaggi.
- Grammatiche non contestuali e regolari.
- Linguaggio definito da una grammatica.
- Alberi di derivazione.
- Grammatiche ambigue.
- Extended Backus-Naur Form (EBNF).
3. Analisi lessicale
- Automi a stati finiti.
- Espressioni regolari.
- Grep.
- Lex/Flex.
4. Analisi sintattica
- Analisi bottom-up.
- Grammatiche LR(1).
- Trattamento degli errori.
- Yacc/Bison.
5. Traduzione guidata dalla sintassi
- Grammatiche ad attributi.
- Attributi sintetizzati ed ereditati.
- Traduzione con azioni semantiche nell'analisi bottom-up.
6. Compilatori
- Tabella dei simboli e formato intermedio
- Analisi semantica e traduzione
- Ottimizzazione
Testi consigliati:
- Giorgio Bruno, Linguaggi formali e compilatori. UTET.
- A. Aho, R. Sethi, J. Ullman, Compilers: principles, techniques, and tools.
Addison-Wesley.
Manuali:
- Manuale GrepPostscript, solo testo
- Manuale Flex: Postscript, solo testo
- Manuale Bison: Postscript, solo testo