04138 - LINGUAGGI DI PROGRAMMAZIONE

Anno Accademico 2012/2013

  • Docente: Gianluigi Zavattaro
  • Crediti formativi: 6
  • SSD: INF/01
  • Lingua di insegnamento: Italiano

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