LINGUAGGI DICHIARATIVI

Docente: Prof. G.F. Rossi  (e-mail: gianfranco.rossi at unipr.it)


Programma del corso

Introduzione alla programmazione dichiarativa. Definizione, vantaggi, linguaggi di programmazione dichiarativa, forme di programmazione dichiarativa - Principali caratteristiche dei linguaggi di programmazione dichiarativa.

Un linguaggio per la programmazione dichiarativa: il Prolog. Cenni allo sviluppo del Prolog. - Variabili e tipi di dato (termini semplici e composti). Clausole e programmi (sintassi). - Semantica. Interpretazione logica. Interpretazione procedurale. Invertibilita' predicati. - Unificazione e sostituzione. - Semantica operazionale. Derivazione. Albero di derivazione SLD. Insieme di successo. - Nondeterminismo e strategie di ricerca. Backtracking. Incompletezza. - Strutture dati: liste. Rappresentazione. Operazioni su liste. Stringhe. - Rappresentazione e manipolazione numeri. - Controllo backtracking ("cut"). Negazione per fallimento (cenni). - Programmazione dichiarativa in Prolog. Variabili logiche e unificazione. Strutture dati parzialmente specificate. Nondeterminismo e ricorsione. - Predicati built-in (extra-logici). Input-output: di termini, di caratteri, su file. Modifica dinamica del programma (cenni). Manipolazione di termini (cenni). Insieme delle soluzioni ('setof'). - Meta-interprete Prolog (puro) - Sviluppo ed esecuzione di programmi in SWI-Prolog.

Programmazione logica a vincoli. Limitazioni del Prolog (dichiarativita', efficienza). - Nozione di vincolo e di risolutore.Esempi di Domini di vincoli - Il CLP. Programma, computazione CLP, risoluzione di vincoli: propagazione e controllo di consistenza. - Interprete CLP scritto in Prolog - Un esempio di CLP: CLP(FD). Vincoli FD. Risoluzione vincoli FD ("arc-consistency"). Regole di riduzione dei domini. Completezza. Calcolo delle soluzioni ("labeling") - Esempio della "colorazione di una mappa". - CLP(FD) in SWI-Prolog.
 



Testi consigliati

L. CONSOLE, E. LAMMA, P. MELLO, M. MILANO: Programmazione logica e Prolog (II edizione), UTET Libreria, 1997, Anno ristampa 2006, pp. 432.
 
 

Altre informazioni sul corso