Semantica (2005/2006)

Corso a esaurimento

Codice insegnamento
4S00065
Docente
Andrea Masini
crediti
5
Settore disciplinare
INF/01 - INFORMATICA
Lingua di erogazione
Italiano
Periodo
non ancora assegnato

Obiettivi formativi

Scopo del corso è quello di introdurre le principali tecniche matematiche usate nello studio dei linguaggi di programmazione:

* sistemi di tipi
* semantica operazionale
* domini
* semantica denotazionale

Il corso si rivolge a studenti con uno spiccato interesse per l'informatica teorica.

Il corso presuppone le competenze acquisite nei corsi di "Programmazione", "Logica", "Algebra", "Linguaggi di Programmazione" e "Fondamenti dell'informatica" della laurea triennale in informatica.

Programma

1 semantica operazionale
1.1 il linguaggio IMP
1.2 regole di valutazione
2 principi di induzione
2.1 induzione matematica, strutturale e ben fondata
2.2 induzione sulle derivazioni
2.3 definizioni per induzione
3 definizioni induttive
3.1 regole e induzione
3.2 regole di prova per la semantica operazionale
3.3 operatori e punti fissi
4 semantica denotazionale di IMP
4.1 semantica denotazionale
4.2 confronto con la semantica operazionale
4.3 ordini parziali completi (cpo)
4.4 teorema di Knaster-Tarski di punto fisso
5 introduzione alla teoria dei domini
5.1 costruzione di cpo
5.2 un metalinguaggio per la teoria dei domini
6 la ricorsione
6.1 il linguaggio REC
6.1 call-by value e call-by-name (semantiche operazionali e denotazionali)
7 linguaggi tipati
7.1 tipi
7.2 un linguaggio call-by-value: semantica operazionale e denotazionale
7.3 un linguaggio call-by-name: semantica operazionale e denotazionale
7.5 confronto delle semantiche operazionali e denotazionali

Testi di riferimento
Autore Titolo Casa editrice Anno ISBN Note
G. Winskel The formal Semantics of Programming Languages MIT Press 1993

Modalità d'esame

L'esame consiste in una prova orale