mag 18 2008
Programmazione Avanzata
| Docente: | Stefano Marcugini |
| Indirizzo: | insegnamenti comuni |
| Anno accademico: | 2007/2008 |
| Ore di teoria: | 48 |
| Ore di pratica: | 0 |
| CFU | 6 |
| Sito ufficiale: |
Obiettivi
Comprendere i principi della programmazione funzionale. Apprendere un linguaggio di programmazione funzionale (Ocaml) ed acquisire la capacità di applicarlo per risolvere problemi complessi.
Programma
Fondamenti della programmazione funzionale.
Il lambda calcolo. Lambda calcolo puro ed applicato. Lambda calcolo con tipi. La tesi di Church. Linguaggi ML. Induzione e ricorsione.
Elementi di programmazione funzionale in Objective Caml: espressioni e tipi semplici; variabili e ambienti; definizione di funzioni, tipi di dato (Tuple, Record, Liste, Alberi) e definizione di nuovi tipi, polimorfismo, patterns, ambienti locali, strategie di valutazione (in ordine normale e in ordine applicativo), funzioni di ordine superiore.
Rappresentazione di grafi. Backtracking. Applicazione a problemi di ricerca.
Modalità di valutazione
Prova scritta e orale.
Testi consigliati
M. Cialdea Mayer, C. Limongelli: Introduzione alla programmazione funzionale, Progetto Leonardo Bologna.




