#acl SUAGroup:read,write,admin,delete,revert All:read
== Linguaggi formali e compilatori ==
'''Numero di crediti ECTS''': 5 (48 ore frontali)
'''SSD di riferimento''': INF/01
'''Docente''': G. Greco
'''Prerequisiti'''
<
>
##Fondamenti di Programmazione.
[[ProgrammazioneAdOggettiSUA| Programmazione ad oggetti]]
'''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.