Estensione di un interprete prolog per la gestione delle eccezioni 

Matteo Iuliani

L?obiettivo di questa tesi è estendere l?interprete tuProlog al fine di supportare il meccanismo linguistico che Prolog offre per la gestione delle eccezioni. Allo stato attuale, i predicati interessati dall?errore semplicemente falliscono, mentre andrebbe supportato il meccanismo per la gestione delle eccezioni specificato nello standard ISO/IEC 13211-1 e implementato in molti altri interpreti Prolog. Lo standard prevede due predicati per fare ciò: throw/1 permette di lanciare un?eccezione all?interno di un predicato in caso di errore, mentre catch/3 può essere utilizzato per prevenire la terminazione forzata di un programma Prolog causata da eventuali errori. Il primo predicato ha una semantica simile a quella del throw di Java, mentre il secondo è assimilabile a un blocco try/catch. Inoltre lo standard classifica in modo molto preciso gli errori che si possono verificare durante l?esecuzione dei predicati, e descrive per ognuno di essi la sintassi dell?eccezione da lanciare.Il progetto dell?estensione dovrà dunque operare sul motore a stati di tuProlog, introducendo un apposito stato Exception in cui transitare in caso di eccezioni e che abbia lo scopo di gestirle. Tutti i predicati delle varie librerie di tuProlog dovranno quindi essere rivisti, in modo da lanciare le opportune eccezioni in caso di errori invece che fallire.Occorrerà inoltre affrontare la questione della generazione e della gestione di eccezioni Java all'interno di programmi Prolog che utilizzino oggetti Java durante la computazione: i metodi Java invocati via JavaLibrary possono infatti lanciare eccezioni, e anche in questo caso si deve progettare un meccanismo che renda possibile gestirle.
Tags:
    

Thesis Data

2008 © aliCE Research Group @ DEIS, Alma Mater Studiorum-Università di Bologna
0.2