Foto del docente

Davide Sangiorgi

Professore ordinario

Dipartimento di Informatica - Scienza e Ingegneria

Settore scientifico disciplinare: INF/01 INFORMATICA

Coordinatore del Corso di Dottorato in Computer science and engineering

Temi di ricerca

Parole chiave: linguaggi di programmazione concurrenza sistemi di tipi induzione e coinduzione

Nella mia ricerca mi occupo di teoria della concorrenza, con particolare riguardo per i sistemi distribuiti. Cerco di sviluppare modelli e tecniche per l'analisi e la verifica di software su tali sistemi. Utilizzo per questo calcoli di processi, logiche modali e temporali, teorie di equivalenza comportamentale tra processi, sistemi di tipo. Studio i modelli anche come base per nuovi linguaggi di programmazione per sistemi concorrenti o distribuiti.

Lo sviluppo di equivalenze comportamentali (e teorie equazionali) per i calcoli di processi mobili è fondamentale in una teoria della concorrenza, dato che tali teorie costituiscono un elemento essenziale nella formalizzazione e costruzione di metodi di verifica di prorietà importanti di varia natura, quali ad esempio la sicurezza del flusso di informazione, la segretezza e l'autenticazione, nella dimostrazione di corretettezza di trasformazioni di codice, nelle tecniche di confronto di espressività di formalismi. Nel caso di sistemi distribuiti o, piu' generalmente, di linguaggi di ordine superiore (dove parti di codice o di processi possono essere copiati e/o comunicati) queste teorie sono oggi ancora poco sviluppate a causa di difficolta' tecniche ben note. Forme anche minimali di mobilità creano difficoltà sorprendenti nella modellazione di semplici equivalenze basate sulla bisimulazione e nell'individuazione di caratterizzazioni coinduttive di equivalenze contestuali. Difficoltà simili si riscontrano quando si utilizzano i tipi per disciplinare il comportamento dei processi. Mi occupo di logiche modali per sistemi distribuiti che permettono di descrivere, oltre che proprieta' comportamentali dei processi, anche proprietà topologiche dell'ambiente computazionale. Studiamo espressivita' e decidibilita' di tali logiche, cercando di capire quali siano gli operatori di base piu' utili. L'obiettivo e' poi di sviluppare modalita' di alto livello, esprimibili nella logica di base, che aiutino a definire e provare proprieta' utilizzando tecniche di dimostrazione specializzate e possibilmente tool associati. Negli ultimi anni le problematiche legate al controllo delle risorse e della mobilità , in forme diverse, sono state un tema cardine della ricerca di base nella teoria dei tipi. I tipi sono qui utilizzati per fornire delle garanzie sui comportamenti possibili dei processi. Sono attivo in questa area da molto tempo. Sistemi che abbiamo sviluppato, e su cui stiamo ancora lavorando, includono: tipi per il controllo dell'accesso a risorse; tipi per il controllo della distribuzione di risorse su un sistema, tipi per il controllo dell'interferenza tra processi, tipi per il controllo della mobilità degli agenti (dove i permessi per la mobilita' sono specificati mediante tipi), tipi che garantiscono la segretezza delle comunicazioni tra processi. Recentemente, ho iniziato ad occuparmi di applicazioni di calcoli di processi per l'elaborazione orientata ai servizi (SOC). Si tratta di un paradigma emergente per sistemi distribuiti che utilizza i servizi come singole unità di calcolo. I servizi sono entità autonome, indipendenti dalla piattaforma che possono essere descritti, individuati, e programmati ottenendo reti di applicazioni distribuite all'interno di una singola organizzazione o in grado di attraversarne i confini. Il mio lavoro in questo senso mira alla individuazione di un insieme minimo di primitive di base a partire dalle quali definire un calcolo di processi specifico per SOC; si tratta poi di studiare la definibilita' in questo ambito delle tecniche di specifica e verifica (inclusi tipi e logiche) che esistono per calcoli di processi standard. Sono infine interessato all'uso di calcoli e algebre di processi per analizzare sistemi complessi, come i sistemi biologici: definirne la semantica, e sviluppare tecniche per la loro verifica. Le algebre di processo consentono di dominare tale complessita` per due ragioni. La prima e` che` tali algebre consentono di astrarsi dalla struttura interna dei sub-sistemi. La seconda ragione sono le proprieta' di composizionalita' di tali algebre, che permettono di descrivere il comportamento di un sistema a partire dalle descrizioni dei sotto-sistemi che lo compongono.

Ultimi avvisi

Al momento non sono presenti avvisi.