Linguaggi di Nuova Concezione, A.A. 2003/2004
Orario lezioni
- Lun. II fascia, aula 48
- Mar. I fascia, aula 44
- Gio. I fascia, aula 48 o laboratorio.
Programma Svolto
- 19 Aprile 2004. Introduzione al corso. Breve storia della
Programmazione logica e della programmazione con vincoli.
(Dovier)
- 20 Aprile 2004. Sintassi e Semantica della logica del prim'ordine.
Interpretazioni di Herbrand.
(Dovier)
- 26 Aprile 2004. Sostituzioni. Preordine tra queste. Varianti.
Unificatori e mgu. Il problema dell'Unificazione.
(Dovier)
- 27 Aprile 2004. L'algoritmo di unificazione alla Herbrand.
Correttezza, completezza e non-determinismo.
Buoni ordini (lessicografico-multiset) e terminazione.
(Dovier)
- 29 Aprile 2004. Complessità dell'algoritmo di Unificazione e
sue principali implementazioni. Significato logico dell'unificazione.
E-unificazione: esempi di base.
(Dovier)
- 3 Maggio 2004. E-unificazione. Definizioni e problemi
principali. ACI con costanti e generale: limiti di complessità.
Problema: la terminazione dell'algoritmo di unificazione
per liste compatte.
(Dovier)
- 4 Maggio 2004. Programmi con clausole definite.
Fatti, regole e goals. La SLD Derivazione. Indipendenza
dalla scelta della rinomina della clausola, dell'mgu, e
della regola di selezione.
(Dovier)
- 6 Maggio 2004 (lab). Utilizzo del SICStus Prolog.
Primi esempi. Predicati su liste e grafi.
(Dovier)
- 10 Maggio 2004. Alberi SLD e indipendenza dalla regola di computazione.
Semantiche osservazionali e incompletezza di Prolog.
Semantica logica: modelli di Herbrand.
(Dovier)
- 11 Maggio 2004. Risultati modellistici: il modello minimo.
Semantica di punto fisso. Alcuni predicati built-in di Prolog.
(Dovier)
- 13 Maggio 2004 (lab). Visite di grafi. Permutazioni di una lista.
Simulazione di una macchina di Turing. (Dovier)
- 17 Maggio 2004. Il fail, l'assert e la loro combinazione per collezionare soluzioni.
Il cut e la sua combinazione con il fail per implementare la negazione.
Cenni sulle problematiche relative ai Programmi generali.
Programmazione dichiarativa. Metodologia Generate & Test. (Dovier).
- 18 Maggio 2004. Esempi di programmazione dichiarativa e ottimizzazione
dello spazio di ricerca. Le N-regine ed il Map Coloring.
(Dovier)
- 20 Maggio 2004. (lab) Esercitazione sulla programmazione generate & Test.
Verifica dei tempi di esecuzione.
(Dovier)
- 24 Maggio 2004. Constraint Satisfaction Problems (CSP) e Constraint Optimization Problems (COP).
Principali definizioni. Risolutori completi ed incompleti. Regole di risoluzione. Derivazioni e constraint propagation.
Node consistency, Arc consistency, e directional Arc consistency.
(Dovier)
- 25 Maggio 2004.
Hyperarc consistency e Path consistency.
Alberi di ricerca: complete, reduced e prop labeling trees.
(Dovier)
- 27 Maggio 2004.
Metodi di propagazione: forward checking, partial e full look ahead (MAC).
Algoritmi di costruzione/visita di alberi di ricerca:
Branch and Bound con constraints.
Programmazione logica con vincoli: procedura di risoluzione.
(Dovier)
- 31 Maggio.
CLP(FD): esempi di programmazione con la metodologia
constraint + generate: N-regine, SEND+MORE=MONEY,
Protein Folding.
Il risolutore clpfd di SICStus.
(Dovier)
- 1 Giugno.
introduzione alla programmazione logica parallela.
Il modello con parallelismo implicito:
parallelismo AND, parallelismo OR e loro combinaizone.
(Falaschi)
- 3 Giugno. introduzione alla programmazione logica
concorrente. Il modello con parallelismo esplicito.
Gli operatori per il controllo della sincronizzazione
e del non-determinismo. Guardie e commit.
Esempi di programmazione logica concorrente in GHC, PARLOG e CP.
(Falaschi)
- 4 Giugno. Introduzione alla verifica e diagnosi
di Programmi Logici.
(Falaschi-Comini)
- 7 Giugno.
Introduzione alla programmazione
concorrente con vincoli con tempo, semantica ed esempi.
(Falaschi)
- 8 Giugno.
Verifica di programmi concorrenti con vincoli
con tempo, mediante una logica temporale lineare. Sviluppi futuri.
(Falaschi)
- 10 Giugno. Programmazione concorrente con vincoli in Mozart
(Note).
(Falaschi-Dal Palù)
Home Page