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.