SEMANTICA DEI LINGUAGGI DI PROGRAMMAZIONE

Crediti: 
6
Settore scientifico disciplinare: 
INFORMATICA (INF/01)
Anno accademico di offerta: 
2016/2017
Semestre dell'insegnamento: 
Secondo Semestre
Lingua di insegnamento: 

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.