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.
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
Author | Title | Publisher | Year | ISBN | Note |
G. Winskel | The formal Semantics of Programming Languages | MIT Press | 1993 |
L'esame consiste in una prova orale
******** CSS e script comuni siti DOL - frase 9957 ********p>