Linguaggi formali e compilatori
Numero di crediti ECTS: 5 (48 ore frontali)
SSD di riferimento: INF/01
Docente: G. Greco
Prerequisiti  
 
Obiettivi
Scopo del corso è l'acquisizione delle nozioni fondamentali della teoria dei linguaggi formali, e dei principi di funzionamento dei compilatori e dei traduttori. Le competenze acquisite consentiranno di sviluppare interpreti, compilatori, e traduttori secondo il paradigma della programmazione orientata agli oggetti.
Programma
- Introduzione ai linguaggi:  - Alfabeti, stringhe e linguaggi, espressioni regolari
 
- Grammatiche:  - Gerarchia di Chomsky, linguaggi regolari, linguaggi CF, linguaggi CS
 
- Modelli di computazione:  - Automi a stati finite, automi a pila
 
- Parsing:  - Analisi sintattica, alberi di derivazione, grammatiche e linguaggi ambigui, analisi bottom-um parsing LR
 
- Applicazioni:  - Generatiri di parser, traduttori, compilatori.
 
Bibliografia 
 
- Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman. Compilers: principles, techniques, and tools. Addison-Wesley Longman Publishing Co., Inc
- J. Hopcroft, S. Ullman. Introduction to Automata Theory: Languages and Computation. Addison-Wesley, Reading, MA
Tipologia di attività didattiche
Lezioni in aula e laboratorio.
Metodi di valutazione
Esame scritto ed orale.