FONDAMENTI E LINGUAGGI PER LA PROGRAMMAZIONE DISTRIBUITA

INF/01 - 6 CFU - 2° semestre

Docente titolare dell'insegnamento

FRANCO BARBANERA


Obiettivi formativi

Conoscenza e capacità di comprensione (knowledge and understanding): L'obiettivo del corso e' quello di far entrare in contatto lo studente con alcune teorie fondazionali per la programmazione concorrente e distribuita. Lo studente imparera' quindi a riconoscere quello che accomuna la gran parte dei linguaggi concorrenti e distribuiti, ed a isolarne gli aspetti che invece li caratterizzano.

Capacità di applicare conoscenza e comprensione (applying knowledge and understanding):: Lo studio di molte delle teorie fondazionali di cui al punto precedente verra' accompagnato alla pratica di programmazione in linguaggi che su tali teorie si basano. Siano essi linguaggi per lo sviluppo a livello industriale, come Erlang per al modello ad attori per la concorrenza, sieno essi linguaggi didattici o sperimentali, come PICT per quanto riguarda la teoria del pi-calcolo o SePi per la Teoria dei Session Types.

Autonomia di giudizio (making judgements): Lo studente verra' stimolato a cercare di applicare autonomamente quanto imparato nel contesto fromale delle teorie fondazionali presentate ad esempi didattici, ma concreti di programmazione. Verra' inoltre stimolato a inquadrare le eventuali conoscenze acquisite in passato relative alla programmazione concorrente e distribuita nel contesto astratto delle teorie fondazionali affrontate nel corso.

Abilità comunicative (communication skills):

Capacità di apprendimento (learning skills): Lo studente sara' messo in condizione di poter affrontare autonomamente lo studio di linguaggi concorrenti e distribuiti, imparandone a riconoscere ed isolare gli aspetti fondamentali che li caratterizzano

 

 

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

Elementi di base di logica; elementi di base di programmazione concorrente.



Frequenza lezioni

Non obbligatoria.



Contenuti del corso



Testi di riferimento

http://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html


Altro materiale didattico

http://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html



Programmazione del corso

 ArgomentiRiferimenti testi
1Introduzione alla Progr. Funzionalehttp://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
2Introduzione ad Haskell e tipi in Haskell. Introduzione al lambda-calcolo.http://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
3Lambda Calcolo: i termini, Variabili libere e legate, sostituzione. Teoria della beta-riduzione e risultati fondamentali. Cenni di teoria della beta-conversione.http://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
4Il modello di programmazione concorrente ad attori. Introduzione ad Erlang.http://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
5Programmazione in Erlanghttp://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
6Introduzione al pi-calcolo. Processi, scope-extrusion.http://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
7Semantica operazionale del pi-calcolo. Cenni di transizioni etichettate. Introduzione a PICT.http://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
8Tipi in PICT. Programmazione PICT.http://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
9Subtyping in PICThttp://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
10Pattern matching: definizione e implementazionehttp://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
11Responsive channels. Programmazione in PICT. http://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
12Cenni sul Type Checker di PICThttp://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
13Introduzione ai Session Types.http://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
14Introduzione a SePihttp://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
15Programmazione SePi. Cenni di Equivalenza contestuale e bisimulation.http://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
16Il meccanismo della delegation nei session types. Esempi in SePi.http://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
17Refinement Types. Assume and Assert in SePihttp://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
18Introduction to Scribble: Global protocols, local protocols, projections and comunicating finite state automata.http://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
19Multiparty session types: overview.http://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
20A pi-calculus with multiparty session typeshttp://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  
21Distributed pi-calculi. Programmazione distribuita in Erlang: costrutti principali.http://www.dmi.unict.it/~barba/FOND-LING-PROG-DISTR/PROGRAMMI-TESTI/programmaAAcorrente.html  


Verifica dell'apprendimento


MODALITÀ DI VERIFICA DELL'APPRENDIMENTO

Scritto e orale.


PROVE IN ITINERE

No.


PROVE DI FINE CORSO

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


ESEMPI DI DOMANDE E/O ESERCIZI FREQUENTI

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




Apri in formato Pdf English version