FONDAMENTI E LINGUAGGI PER LA PROGRAMMAZIONE DISTRIBUITA

Anno accademico 2016/2017 - 1° anno - Curriculum Sistemi di Rete e Sicurezza
Docente: Franco BARBANERA
Crediti: 6
SSD: INF/01 - Informatica
Organizzazione didattica: 150 ore d'impegno totale, 126 di studio individuale, 24 di lezione frontale
Semestre:

Obiettivi formativi

Conoscenza di base delle basi teoriche della programazione concorrente e distribuita.

Capacita' di comprensione del significato degli aspetti teorici della programmazione concorrente e distribuita.

Capacita' di utilizzare nozioni teoriche nella comune pratica di programmazione concorrente e distribuita.

Capacita' di valutare, giudicare ed utilizzare linguaggi, metodologie e tecniche per la programmazione concorrente e distribuita nel contesto piu' generale ed astratto delle teorie fondazionali.


Prerequisiti richiesti



Frequenza lezioni

Non obbligatoria.


Contenuti del corso

  • Concurrent and distributed programming in non-imperative programming paradigms. Introduction to Functional Programming.
  • Main functional-programming concepts: Order of evaluation, Recursion; Higher-order functions; Anonymous functions; Curryfication; Lists; Recursion; Correctness proofs.
  • Short review of the Lambda-calculus
  • Types for functional programming.
  • Introduction to Haskell; Polymorphic types; Pattern Matching; Type Classes. Infinite structures.
  • Tail recursion
  • The actors model of concurrent programming; A Concurrent functional language: Erlang
  • Concurrent Programming in Erlang
  • Process calculi: Introduction to the Pi-calculus;.
  • Process calculi: Sketchy introduction to contextual equivalence and bisimulation
  • Introduction to the PICT language; Core Pict.
  • Overview of Session Types.
  • Session and Refinement Types: the language SePi.
  • Introduction to Scribble
  • An experimental language with multiparty session types
  • Overview of process calculi for distributed programming.
  • Basics of distributed programming in Erlang.

Testi di riferimento


Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

Scritto e orale.


Esempi di domande e/o esercizi frequenti

http://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/ESERCIZI/index.html