Fornire un'introduzione alla programmazione funzionale, allo studio degli algoritmi e allo sviluppo di strutture dati complesse in tale paradigma di programmazione.
* Introduzione al corso e alla programmazione funzionale.
* Utilizzo dell'ambiente di programmazione OCaml.
* Introduzione alla programmazione OCaml.
* Funzioni come valori.
* Valutazioni strette e lazy.
* Persistenza: liste, alberi binari di ricerca.
* Heap sinistrorsi e binomiali, alberi rosso-neri
* Valutazione lazy: gli stream
* Analisi ammortizzata: code e heap
* Ammortizzazione e persistenza tramite valutazione lazy
* Il metodo del banchiere e quello del fisico
* Eliminazione dell'ammortizzazione
* Ricostruzione lazy
Il corso si svolge in 44 lezioni, due terzi delle quali frontali, e un terzo delle quali in laboratorio.
Author | Title | Publisher | Year | ISBN | Note |
Chris Okasaki | Purely Functional Data Structures (Edizione 1) | Cambridge University Press | 1998 | 0-521-6635 | Riferimento per la parte di strutture dati, valutazione lazy e ammortizzazione. |
Xavier Leroy et al. | The Objective Caml System | 2004 | Riferimento per il linguaggi OCaml. Disponibile in rete all'indirizzo: http://caml.inria.fr/ocaml/htmlman/ |
L'esame consiste in un orale e in un progetto.
L'orale mira a verificare le conoscenze teoriche degli argomenti trattati a lezione. Il progetto intende verificare l'acquisizione da parte dello studente delle capacità di lavoro in programmazione funzionale.
******** CSS e script comuni siti DOL - frase 9957 ********p>