cs@parma

Home

People

Projects

Publications

Seminars

Software

Links

Azione Integrata Italia-Spagna 2001 (IT229)

Descrizione del progetto

Presentazione e obiettivi scientifici

Il progetto si propone di perfezionare le tecniche per la realizzazione di ambienti per lo sviluppo di programmi logici dotati di funzionalità oggi non disponibili per alcun paradigma di programmazione. L'obiettivo ultimo del progetto è quello di predisporre le basi per la costruzione di un ambiente integrato di programmazione per i linguaggi logici con vincoli. Tale ambiente farebbe largo uso di tecniche di manipolazione di programmi basate sulla semantica, e sarebbe dunque incentrato su un analizzatore statico di programmi. Le informazioni raccolte nella fase di analisi sarebbero utilizzate per la compilazione ottimizzata, la diagnosi semi-automatica degli errori di programmazione, la verifica di proprietà dei programmi, il debugging dichiarativo, e l'editing "intelligente" (in cui il programmatore sarebbe assistito dall'ambiente già nella fase di scrittura del programma). Il gruppo spagnolo ha acquisito, attraverso lo sviluppo del sistema CIAO-Prolog, notevoli competenze nel campo della realizzazione di ambienti di programmazione. D'altro canto, il gruppo italiano ha maturato nuove significative esperienze nel campo delle tecniche avanzate di analisi, della verifica, diagnosi e debugging automatico. I due gruppi ritengono che il perfezionamento di queste tecniche e la loro integrazione nel sistema CIAO-Prolog sia fattibile e che questo possa portare ad un deciso passo in avanti dello stato dell'arte.

Fasi di lavoro

In una prima fase, si prevede un lavoro di ricognizione delle esperienze recentemente maturate dai due gruppi. Questo dovrebbe rapidamente portare all'integrazione dell'analizzatore statico di nuova concezione China, sviluppato dal gruppo italiano, con il sistema CIAO-Prolog, sviluppato dal gruppo spagnolo. Questa prima integrazione riguarderebbe quegli aspetti dei rispettivi sistemi che sono già stati oggetto di approfondita ricerca teorica, implementazione e sperimentazione in contesti concreti. Una seconda fase prevede, nel contesto del sistema integrato CIAO-Prolog/China, l'implementazione e lo studio sperimentale, di alcune tecniche (ad esempio, analisi di tipi e di terminazione, debugging astratto ecc.) per le quali esistono studi teorici approfonditi, ma che non sono ancora state adattate ed estese alle necessità di un ambiente di sviluppo reale. Le attività della terza fase dipenderanno certamente dai risultati e dalle esperienze conseguite nelle fasi precedenti. Uno dei vantaggi della collaborazione proposta deriva dal fatto che entrambi i gruppi hanno scelto di distribuire il software prodotto nei termini della GNU General Public License. Questo significa che tutto il software sviluppato nel contesto del presente progetto sarà reso disponibile al pubblico senza alcun onere o restrizione. L'esperienza degli utenti sarà dunque uno degli stimoli principali per la terza fase. Non è poi azzardato ritenere che le fasi precedenti possano mettere in luce la necessità di approfondimenti teorici riguardo le tecniche di analisi e/o quelle di manipolazione dei programmi adottate.

Metodologia prevista

Per ottenere i risultati attesi si utilizzeranno tra le altre, le seguenti metodologie: 1) Perfezionamento, implementazione e integrazione di tecniche per l'analisi di programmi modulari, analisi incrementale, e analisi on-line. 2) Definizione di analisi di tipi che siano al contempo precise ed efficienti. L'analisi di tipi, pur essendo di fondamentale importanza per molte tecniche di manipolazione di programmi e di debugging, manca, a tutt'oggi, di realizzazioni che abbiano entrambe queste caratteristiche. 3) Definizione di un framework generale per la verifica dei linguaggi logici, nel quale sia possibile trattare la correttezza parziale dei programmi utilizzando condizioni sufficienti basate sul calcolo di pre-punti fissi. Il framework fornira' la possibilita' di specificare varie tecniche di verifica, semplicemente utilizzando diverse funzioni di astrazione di una opportuna semantica concreta. 4) Estensione del debugging dichiarativo alla cosiddetta diagnosi astratta, nella quale possono essere utilizzate differenti astrazioni, sia nella formulazione della specifica che nella definizione della semantica.

Risultati attesi

Ci aspettiamo che il progetto possa fornire la prova della fattibilità concreta di ambienti di sviluppo integrati basati sulla semantica per la programmazione logica con vincoli. Le potenzialità che ci apettiamo da tali ambienti sono decisamente superiori a quelle offerte dagli ambienti oggi esistenti, e questo a prescindere dal paradigma di programmazione considerato. I linguaggi logici, per le caratteristiche semantiche che li contraddistinguono, sono ideali per questo tipo di studio. Ci aspettiamo che l'esperienza acquisibile nel progetto possa essere utile, in prospettiva, anche per lo sviluppo di simili ambienti per paradigmi di programmazione differenti. Tra i vantaggi della collaborazione citiamo: 1) La focalizzazione della ricerca teorica verso la soluzione dei problemi che si presentano quando si passa dalla trattazione astratta di sistemi idealizzati a quella di sistemi realmente implementati ed utilizzati. 2) La disponibilità in CIAO-Prolog di tecniche avanzate di analisi e di manipolazione di programmi basate sulla semantica. 3) La possibilità di confronto di tecniche, esperienze e metodologie sviluppate ed acquisite in ambienti di ricerca differenti.

Contributodella parte spagnola - precedenti collaborazioni

Il gruppo spagnolo ha una notevole esperienza nel campo dell'analisi e dell'implementazione dei linguaggi logici. Negli ultimi anni il gruppo ha dedicato un'enorme quantità di energie allo sviluppo di un sistema Prolog, denominato CIAO-Prolog, conforme allo standard ISO Prolog. Questo sistema, che viene distribuito nei termini della GNU General Public License, utilizza tecniche di analisi statica per la compilazione ottimizzata, per alcune forme di debugging statico, e per la specializzazione e la parallelizzazione dei programmi. Per questi motivi, il gruppo spagnolo ha forti competenze nel campo della progettazione e realizzazione di ambienti di sviluppo per la programmazione logica con vincoli. Diversi componenti dei gruppi spagnolo e italiano hanno collaborato al progetto ESPRIT Basic Research Action n. 6707, "ParForce". Questa precedente esperienza di collaborazione è stata estremamente proficua ed ha significativamente contribuito allo sviluppo della ricerca condotta dai rispettivi gruppi.

Sintesi del progetto

Ci si propone di perfezionare le tecniche per la realizzazione di ambienti per lo sviluppo di programmi logici dotati di funzionalità oggi non disponibili per alcun paradigma di programmazione. Analisi statica e tecniche di manipolazione di programmi basate sulla semantica (ottimizzazione, diagnosi, verifica e debugging) integrate in sistemi reali, sono gli ingredienti base del progetto.

[Page last updated on March 06, 2002, 11:43:49.]

Page maintained by
Enea Zaffanella

Home | People | Projects | Publications | Seminars | Software | Links