- Docente: Gianluigi Zavattaro
- Crediti formativi: 6
- SSD: INF/01
- Lingua di insegnamento: Italiano
- Modalità didattica: Convenzionale - Lezioni in presenza
- Campus: Cesena
-
Corso:
Laurea Magistrale in
Scienze e tecnologie informatiche (cod. 8030)
Valido anche per Laurea Magistrale in Ingegneria e scienze informatiche (cod. 8614)
Conoscenze e abilità da conseguire
Al termine del corso, lo studente possiede le conoscenze sugli aspetti fondamentali riguardanti i linguaggi di programmazione. In particolare, conosce le principali tecniche per la progettazione di linguaggi di programmazione e la loro interpretazione o compilazione.
Contenuti
- automi a stati finiti deterministici e
nondeterministici
- espressioni regolari
- grammatiche libere dal contesto
- automi a pila nondeterministici
- ambiguità delle grammatiche libere ed automi a pila
deterministici
- macchine di Turing e macchine a registri
- tesi di Turing-Church
- cenni a problemi indecibili
- modelli computazionali concorrenti (sincronizzazione e
comunicazione)
- logiche temporali
- analizzatori lessicali
- tecniche di parsing
- analizzatori sintattici e traduzione guidata dalla sintassi
- controlli statici di programmi
- generazione di codice
Testi/Bibliografia
Hopcroft, Motwani, Ullman,
"Automi, Linguaggi e Calcolabilità", terza edizione,
Addison-Wesley, 2009
Aho, Lam, Sethi, Ullman.
"Compilatori".
Seconda edizione, Addison-Wesley
Huth, Ryan.
"Logics in computer science: modelling and reasoning about
systems".
Cambridge University Press.
Metodi didattici
Lezioni frontali alla lavagna e esercitazioni.
Modalità di verifica e valutazione dell'apprendimento
Scritto o seminario.
Strumenti a supporto della didattica
Lavagna, PC, videoproiettore.
Orario di ricevimento
Consulta il sito web di Gianluigi Zavattaro