Costrutti linguistici e tecniche di verifica per sistemi concorrenti:
Modulo 2

Docente: Davide Sangiorgi.

Descrizione modulo

Un ramo della concorrenza che con i recenti progressi tecnologici e' diventato importante e' dato dai sistemi concorrenti mobili, cioe' sistemi la cui struttura non e' staticamente fissa, ma puo' cambiare dinamicamente mentre in sistema stesso e' in funzione. Per esempio, si trova la mobilita' nella programmazione ad oggetto, in sistemi di comunicazione wireless, in sistemi distribuiti. Nella seconda parte del corso verra' introdotto il pi-calculo, un linguaggio di base per descrivere sistemi concorrenti mobili. Il pi-calculo presenta molte similitudine con il linguaggio CCS visto nella prima parte del corso, ma ci sono alcune importanti differenze che conferiscono un potere di espressivita' maggiore. Presenteremo il pi-calculo sia come modello di base per la concorrenza mobile, al quale si possono applicare concetti visti nella prima parte del corso come le equivalenze di comportamento, sia come il nucleo di un linguaggio di programmazione concorrente. Vedremo come il pi-calculo puo' essere usato per descivere varie forme di sistemi concorrenti, per esempio sistemi distribuiti in cui i processi possono migrare da un sito ad un altro, oppure sistemi ad oggetto concorrenti. Vedremo come vari concetti della programmazione funzionale sequenziale, per esempio i tipi, possono essere ri-usati nel pi-calculo, e vedremo perche' sono importanti in questo ambito. Se il tempo lo permette, vedremo anche come opportune estensioni del pi-calculo possono essere usate per sistemi complessi; per esempio in biologia, per descrivere l'evoluzione di complessi sistemi molecolari o per studiare il comportamento di geni e proteine.

Testi/Bibliografia


Last modified: Fri Sep 23 11:49:54 CEST 2005