Docente
|
SALVO IVANO
(programma)
Parte 1: Programmazione Funzionale.
1.1) Concetti base di Haskell: tipi, funzioni, definizioni ricorsive.
1.2) Classi, tipi definiti dall'utente, funzioni di ordine superiore.
1.3) Call-by-name e valutazione lazy. Tipi di dato infiniti.
1.4) Trattamento di aspetti non-funzionali (IO, eccezioni, stato, etc.) in Haskell:
Funtori, Applicativi e Monadi.
1.5) Sviluppo di programmi corretti e trasformazioni di programmi: ragionamento equazionale.
Parte 2: Programmazione Imperativa.
2.1) Ripasso di programmazione base in C.
2.2) Gestione esplicita della memoria in C, alias, side-effects.
2.3) Programmazione Funzionale in C.
2.4) Sviluppo di Programmi corretti in C: asserzioni logiche. Limiti di questa metodologia nella programmazione imperativa.
Parte 3: Perle di Programmazione Funzionale e Imperativa.
![](/images/icon-multipage.png) Testi:
R. Bird: "Thinking Functionally with Haskell". Cambridge University Press, 2015.
B.W.Kernigham, D. Ritchie: "The C Programming Language" (2nd edition), Pearson, 1988.
Dispense del docente.
|