Dottorato in Ingegneria Elettronica e Informatica
Alma Mater Studiorum – Università di Bologna
Bologna, Italy
febbraio 1995
Lo scopo di questa tesi è definire un unico modello computazionale basato sulla logica del prim’ordine, che sia in grado di catturare tutto quanto è essenziale nei paradigmi logico e orientato agli oggetti, senza perdere nessuna delle caratteristiche fondamentali di ciascuno dei due approcci.
Dopo un’analisi delle soluzioni disponibili, la scelta di una rappresentazione degli oggetti come teorie logiche emergerà come la più utile; in particolare si potrà mostrare come la più parte delle caratteristiche peculiari del paradigma a orientato agli oggetti possa essere catturata e riprodotta in ambito logico adottando ed estendendo opportunamente il modello della programmazione logica contestuale. Il modello risultante verrà poi descritto, e ne sarà discussa una realizzazione in termini sia di linguaggio sia di implementazione.
I limiti intrinseci del modello introdotto (relativi in particolare alla capacità di esprimere tanto la nozione di stato di un oggetto, quanto quella di relazione classe/istanza) fungeranno poi da linee-guida per un nuovo framework concettuale basato (i) sull’abduzione, per la creazione e configurazione dinamica di teorie logiche in modo dichiarativo, e (ii) sul concetto di vincolo di metalivello per la definizione di un modello computazionale adeguato.
L’introduzione del concetto di computazione a vincoli consentirà di porre in evidenza come programmare per relazioni con un modello dei dati a oggetti può in linea di principo consentire la riconciliazione di metodologie di programmazione apparentemente distanti come quella a oggetti e quella a vincoli, in un quadro concettuale più semplice e uniforme (e quindi, in breve, più convincente) di altri approcci allo stesso problema noti in letteratura.