Tags:
create new tag
view all tags

Tecniche di Programmazione

Funzionale e Imperativa

Prof. Ivano Salvo

Corso di laurea in Informatica, 3zo anno

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

  • Testi Consigliati
    • R. Bird: Thinking Functionally with Haskell. Cambridge University Press (2015).
    • B.W.Kernigham, D. Ritchie: The C Programming Language (2nd edition), Pearson (1988).

  • Dispense
    • (a seguire, durante il corso)

  • Testi di consultazione e di ispirazione
    • E. W. Dijkstra: A Discipline of Programming, Prentice Hall (1976).
    • R. Bird: Pearls of Functional Algorithm Design, Cambridge University Press (2010).
    • R. Bird, P. Wadler: Introduction to Functional Programming, Prentice Hall (1988). *
    • A. Oram, G. Wilson (eds.): Beautiful Code, O'Reilly (2008).
    • J. Bentley: Programming Pearls (1986) and More Programming Pearls (1988), Addison Wesley.

Orario delle Lezioni 2020/21 - II semestre

giorno (da definire) ora (da definire) aula (da definire)
giorno (da definire) ora (da definire) aula (da definire)


Diario delle Lezioni


Esami


Edit | Attach | Watch | Print version | History: r8 < r7 < r6 < r5 < r4 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r8 - 2020-05-08 - IvanoSalvo





 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback