SEMANTICA DEI LINGUAGGI DI PROGRAMMAZIONE
cod. 1000741

Anno accademico 2018/19
3° anno di corso - Secondo semestre
Docente
Roberto BAGNARA
Settore scientifico disciplinare
Informatica (INF/01)
Ambito
A scelta dello studente
Tipologia attività formativa
A scelta dello studente
56 ore
di attività frontali
6 crediti
sede:
insegnamento
in ITALIANO

Obiettivi formativi

Introdurre gli studenti ai metodi formali per la specifica della semantica dei linguaggi di programmazione ed alle tecniche formali per verificare l'aderenza del comportamento di un programma ad una specifica parziale.

Prerequisiti

Fondamenti dell'informatica.

Contenuti dell'insegnamento

Definizione di semantiche operazionali e denotazionali di semplici linguaggi imperativi sequenziali; ragionamento formale circa il comportamento di semplici programmi; nozioni di equivalenza comportamentale dei programmi.

Programma esteso

Sintassi e semantica dei programmi. Semantica operazionale strutturata big step e small step. Principi di induzione e definizioni induttive. Semantica denotazionale. Ordinamenti, domini e punti fissi. Semantica assiomatica. Verifica di correttezza dei programmi. Analisi statica dei programmi.

Bibliografia

The Semantics of Programming Languages: An Elementary Introduction using Structural Operational Semantics. Matthew Hennessy, Wiley, 1990. [http://www.cogs.susx.ac.uk/users/matthewh/semnotes.ps.gz]

La Semantica Formale dei Linguaggi di Programmazione. Glynn Winskel. MIT Press, 1993.

Metodi didattici

Lezioni, esercitazioni e progetti.

Modalità verifica apprendimento

La valutazione avverrà con le seguenti modalità: assegnazione, durante il corso, di esercizi da svolgere a casa e da riconsegnare la settimana successiva; svolgimento di un progetto finale; esame orale conclusivo.

Altre informazioni

- - -

Obiettivi agenda 2030 per lo sviluppo sostenibile

- - -