Tags:
create new tag
view all tags

Tecniche di Programmazione

Funzionale e Imperativa

Prof. Ivano Salvo

Corso di laurea in Informatica, 3zo anno

Avvisi

BREAKING NEWS: Per l'edizione 2022, iscrivetevi al Classroom TPFI-22, codice nqsvha3.

Avviso: Gli studenti interessati a seguire il corso nel 2022, oltre a iscriversi al Classroom, sono pregati di inviare una mail al docente e specificare se intendono seguire il corso in presenza o da remoto.

Vecchi Avvisi

Avviso: Eventuali studenti che non avessero seguito il corso, ma intendono sostenere l'esame, sono pregati di contattare il docente.

Descrizione del Corso

Il corso mira a introdurre il paradigma di programmazione funzionale, attraverso lo studio del linguaggio Haskell.
Viene inoltre fatto un confronto con il paradigma imperativo e quello funzionale.
Vengono infine introdotti metodi per ragionare sulla correttezza dei programmi in entrambi i paradigmi.

Programma del Corso

1. Programmazione Funzionale.

  1. Concetti base di Haskell: tipi, funzioni, definizioni ricorsive.
  2. Polimorfismo, classi, tipi definiti dall'utente, funzioni di ordine superiore.
  3. Call-by-name e valutazione lazy. Tipi di dato infiniti.
  4. Trattamento di aspetti non-funzionali (IO, eccezioni, stato, etc.) in Haskell: Funtori, Applicativi e Monadi.
  5. Sviluppo di programmi corretti e trasformazioni di programmi: ragionamento equazionale.

2. Programmazione Imperativa.

  1. Ripasso di programmazione base in C.
  2. Gestione esplicita della memoria in C, alias, side-effects.
  3. Confronti e contaminazioni I: programmazione funzionale in C.
  4. Confronti e contaminazioni II: programmazione imperativa in Haskell.
  5. Sviluppo di programmi corretti in C: asserzioni logiche. Limiti di questa metodologia nella programmazione imperativa.

3. Perle di Programmazione Funzionale e Imperativa.

  1. Ogni anno verranno selezionate 4-6 perle di programmazione imperativa.
  2. e 4-6 perle di programmazione funzionale.

Materiali Didattici

Orario delle Lezioni 2021/22 - II semestre

martedý 14-16 aula Alfa (via Salaria) vedi classroom
venerdý 16-19 aula Magna (Regina Elena, ed. C) vedi classroom


Diario delle Lezioni


Esami


Edit | Attach | Watch | Print version | History: r19 < r18 < r17 < r16 < r15 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r19 - 2022-02-16 - IvanoSalvo






 
ATTENZIONE: per spostamento su altro server twiki potrÓ essere inattivo per brevi periodi nel pomeriggio di lunedý 8/8.
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback