Un approccio formale nella progettazione di un linguaggio consiste nella sua definizione rigorosa tramite una sintassi e una semantica.
Esistono tre approcci alla semantica dei linguaggi:
e::=n dove n è un letterale intero (n Є {0,1,2,..})
| e1 + e2 somma
| e1 * e2 moltiplicazione
Questioni da risolvere:
Specifica come le espressioni dovrebbero essere valutate.
È definita in base alla particolare forma dell’espressione valutata:
- n è una forma normale e non necessita di essere valutata ulteriormente
- e1 si valuta n1
- e2 si valuta n2
- ed n è la somma di n1 e n2
- e1 si valuta n1
- e2 si valuta n2
- ed n è il prodotto di n1 e n2
1. Breve Presentazione del corso
2. Semantica Operazionale del linguaggio imperativo IMP
4. Esercitazione sulla semantica operazionale di IMP e sulle tecniche di prova
5. Definizione Induttiva di Domini
6. Ordinamenti parziali completi, funzioni continue e minimi punti fissi
7. Semantica denotazionale di IMP
8. Semantica denotazionale del comando while di IMP
9. Equivalenza delle semantiche operazionale e denotazionale di Aexp e Bexp di IMP
10. Esercitazione sulle semantiche operazionale e denotazionale di IMP
11. Equivalenza delle semantiche operazionale e denotazionale dei comandi di IMP
12. Esercitazione in aula (sulla prima metà del corso)
13. Linguaggi con Tipi di Ordine Superiori
14. Valutazione Lazy
15. Nondeterminismo e Parallelismo (Concorrenza)
16. Esercitazione in aula sui tipi e sul non-determinismo
17. Communicating Sequential Processes (CSP)
18. Calculus of Communicating Systems (CCS)