Linguaggi funzionali (2004/2005)

Corso a esaurimento

Codice insegnamento
4S00063
Docente
Nicola Fausto Spoto
crediti
5
Altri corsi di studio in cui è offerto
Settore disciplinare
INF/01 - INFORMATICA
Lingua di erogazione
Italiano
Sede
VERONA
Periodo
2° Q dal 10-gen-2005 al 11-mar-2005.

Orario lezioni

2° Q
Giorno Ora Tipo Luogo Note
mercoledì 8.30 - 10.30 lezione Aula D  
venerdì 11.30 - 13.30 lezione Aula C  
venerdì 14.30 - 15.30 lezione Aula C  

Obiettivi formativi

Fornire un'introduzione alla programmazione funzionale, allo studio degli algoritmi e allo sviluppo di strutture dati complesse in tale paradigma di programmazione.

Programma

* 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.

Testi di riferimento
Autore Titolo Casa editrice Anno 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/

Modalità d'esame

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.

Materiale didattico

Documenti