Programmazione logica



Documenti analoghi
Interpretazione astratta

(anno accademico )

della funzione obiettivo. Questo punto dovrebbe risultare chiaro se consideriamo una generica funzione:

Introduzione ai tipi di dato astratti: applicazione alle liste

Elementi di semantica operazionale

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE

Elementi di semantica denotazionale ed operazionale

Punti Fissi. Mappe tra insiemi parz. ordinati. Siano (P, P ) e (Q, Q ) due insiemi parzialmente ordinati. Una funzione ϕ da P a Q si dice:

Linguaggi e Paradigmi di Programmazione

MODELLO RELAZIONALE. Introduzione

I progetti di Innovazione tecnologica del Ministero dell Economia e delle Finanze e la misurazione del loro impatto

LE ANALISI DI BILANCIO COMPLESSO DI TECNICHE DI TIPO QUANTITATIVO, BASATO SU UNO O PIÙ

Lezione 8. La macchina universale

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Mondo Alternative. Le sfide dell assetallocationin una nuova era

Generazione Automatica di Asserzioni da Modelli di Specifica

Le funzioni di due variabili

Ottimizazione vincolata

La Progettazione Concettuale

Verifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio

Orientamenti sulla valutazione ex ante dei Programmi Il sistema di indicatori nella programmazione

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

Database. Si ringrazia Marco Bertini per le slides

Progettaz. e sviluppo Data Base

LINGUAGGI DI PROGRAMMAZIONE

Matematica generale CTF

Indice di rischio globale

PIANO DI LAVORO DEL PROFESSORE ISTITUTO TECNICO Amministrazione Finanza e Marketing

Corso di Matematica per la Chimica

Safety Speed Monitoring. Considerazioni sui sensori in applicazioni per il controllo della velocità di sicurezza

Introduzione Ordini parziali e Reticoli Punti fissi

Strutturazione logica dei dati: i file

Introduzione all Information Retrieval

TITOLO INIZIATIVA DESTINATARI LUOGO DURATA COSTO AMBITO TITOLO INIZIATIVA DESTINATARI LUOGO DURATA COSTO AMBITO

PROGRAMMA CONSUNTIVO

sezioni incluso Espandi tutto 0. Elementi di matematica elementare (parzialmente incluso) Sezione 0.1: I numeri reali Sezione 0.2: Regole algebriche.

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

Matematica Finanziaria Soluzione della prova scritta del 15/05/09

4 Dispense di Matematica per il biennio dell Istituto I.S.I.S. Gaetano Filangieri di Frattamaggiore EQUAZIONI FRATTE E SISTEMI DI EQUAZIONI

PowerSchedo. Un sistema di supporto alla decisione nel settore dell'oil&gas. For further information:

Ottimizzazione delle interrogazioni (parte I)

Ge.Stru.Me Software per la gestione degli strumenti di misura

Relazioni statistiche: regressione e correlazione

Operazioni sulla Retta Algebrica e riflessione sulla loro definizione nell insieme dei Naturali

Metodi formali per la verifica dell affidabilità di sistemi software (e hardware) (Peled, Software Reliability Methods, cap. 1) Importanza della

Capitolo 13: L offerta dell impresa e il surplus del produttore

2 + (σ2 - ρσ 1 ) 2 > 0 [da -1 ρ 1] b = (σ ρσ1 σ 2 ) = (σ 1

SAFETY & MOVING. Miglioramento delle pratiche di efficienza produttiva. 6 maggio ing. Marco Lanciai

Lezione 2. Il modello entità relazione

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

PIANO DI LAVORO DEL PROFESSORE

Tecnologia di un Database Server (centralizzato) Introduzione generale

Fondamenti dei linguaggi di programmazione

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Algoritmi e strutture dati. Codici di Huffman

studi e analisi finanziarie La Duration

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Le query. Lezione 6 a cura di Maria Novella Mosciatti

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

GESTIONE DELLE TECNOLOGIE AMBIENTALI PER SCARICHI INDUSTRIALI ED EMISSIONI NOCIVE LEZIONE 10. Angelo Bonomi

Massimi e minimi vincolati di funzioni in due variabili

2 La pianificazione finanziaria

Principi dell ingegneria del software Relazioni fra

Ricerca Operativa e Logistica

Sviluppo di processi per l automatizzazione del testing per applicazioni Android

PIANO DI LAVORO ANNUALE

Scelte in condizioni di rischio e incertezza

Strumenti di modellazione. Gabriella Trucco

Ministero del Lavoro e della Previdenza Sociale

Un po di statistica. Christian Ferrari. Laboratorio di Matematica

Relazione illustrativa degli Obiettivi di accessibilità

Calcolatori: Algebra Booleana e Reti Logiche

ARCHITETTURA. Rubrica Infografica

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Sintesi di reti combinatorie. Sommario. Motivazioni. Sommario. Funzioni Espressioni. M. Favalli

PROGRAMMAZIONE COMPETENZE CHIAVE DI CITTADINANZA

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Esponenziali e logaritmi

ISTITUTO TECNICO ECONOMICO MOSSOTTI

INFORMATICA GENERALE. Prof Alberto Postiglione Dipartim. Scienze della Comunicazione Univ. Salerno. Università degli Studi di Salerno

Che cosa e come valutano le prove di matematica e con quali risultati. nell A.S

CAPITOLO I. Prof. Ing. Michele Marra - Appunti delle Lezioni di Ricerca Operativa Programmazione Dinamica

Linguaggi di programmazione

Introduzione al Semantic Web

RISOLUTORE AUTOMATICO PER SUDOKU

Per calcolare agevolmente strutture con travi reticolari miste, tipo NPS SYSTEM di Tecnostrutture, è stato necessario introdurre in MasterSap molti

La funzione di trasferimento

OSSERVAZIONI TEORICHE Lezione n. 4

Concetti di base di ingegneria del software

La valutazione nella didattica per competenze

f: AxB f(x)=y, f={<x,y> per ogni x in A esiste unica y in B f(x)=y} f={<1,2>, <2,3>, <3,3>} : {1,2,3} {1,2,3} f(1)=2, f(2)=3, f(3)=3

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

IL MODELLO SCOR. Agenda. La Supply Chain Il Modello SCOR SCOR project roadmap. Prof. Giovanni Perrone Ing. Lorena Scarpulla. Engineering.

Seminario Tecnico Piacenza 31/01/2013 GRIGLIA DI VALUTAZIONE P.S.C.

analisi di sistemi retroazionati (2)

interpretazione astratta

Metodologie di programmazione in Fortran 90

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Transcript:

Programmazione logica l interpretazione astratta è molto popolare in programmazione logica Il modello computazionale si presta a varie ottimizzazioni, basate sui risultati dell analisi è relativamente facile da definire, poiché le semantiche sono naturalmente collecting ed il dominio concreto (insiemi di sostituzioni o insiemi di insiemi di equazioni) è piuttosto semplice esistono molte importanti proprietà (groundness, freeness, sharing, depth(k)) per alcune proprietà (groundness e sharing) esisono molti domini astratti differenti tecniche per confrontare la precisione relativa di domini astrattiimportantresults on techniques for the systematic designdomains, which can probably be applied to other paradigms as well compilazione astratta in CLP (Giacobazzi, Debray & Levi, JLP 95) la computazione astratta è una computazione CLP standard su un differente sistema di vincoli 1

Programmazione logica α (lfp F) = lfp F α nessuno dei due punti fissi è calcolabile in un numero finito di passi utile per ragionare su differenti semantiche e per derivare sistematicmente semantiche più astratte scelta della semantica più adeguata alla particolare analisi e/o verifica F α è meno costoso di F nel calcolo della proprietà osservabile modellata da α no junk ricostruzione sistematica di diverse semantiche punto fisso (Comini, Levi & Meo, Info. & Comp. 00) 2

Groundness in Programmazione logica versione CLP dominio concreto (P(Eqns), ), insiemi di insiemi di equazioni in forma risolta semantica concreta la versione CLP della s-semantica (vincoli di risposta) 3 domini astratti G: the property of being ground DEF: dipendenze funzionali di groundness POS: DEF + un po di informazione disgiuntiva i reticoli sono mostrati nel caso di 2 variabili 3

Un esempio programma p(x,y) :- X=a. p(x,y) :- Y=b. q(x,y) :- X=Y. r(x,y) :- p(x,y),q(x,y). semantica concreta p(x,y) -> {{X=a},{Y=b}} q(x,y) -> {{X=Y}} r(x,y) -> {{X=a,Y=a},{X=b,Y=b}} nella semantica concreta di r entrambi gli argomenti sono legati a terminiground (in tutti i vincoli di risposta) 4

Il dominio G true γ G (v) = X Y, se v= bot X&Y {e Eqns X è legato ad un termine ground in e }, se v= X X è sempre ground Eqns, se v= true nessuna informazione di groundness bot programma p(x,y) :- X=a. p(x,y) :- Y=b. q(x,y) :- X=Y. r(x,y) :- p(x,y),q(x,y). semantica concreta p(x,y) -> {{X=a},{Y=b}} q(x,y) -> {{X=Y}} r(x,y) -> {{X=a,Y=a},{X=b,Y=b}} astrazione della semantica concreta p(x,y) -> true q(x,y) -> true r(x,y) -> X & Y Programma astratto p(x,y) :- lub G (X,Y). q(x,y) :- true. r(x,y) :- glb G (p(x,y),q(x,y)). Semantica astratta p(x,y) -> true q(x,y) -> true r(x,y) -> true 5

Il dominio Def Y X X bot true X Y X&Y X Y programma p(x,y) :- X=a. p(x,y) :- Y=b. q(x,y) :- X=Y. r(x,y) :- p(x,y),q(x,y). Y γ Def (v) = semantica concreta p(x,y) -> {{X=a},{Y=b}} q(x,y) -> {{X=Y}} r(x,y) -> {{X=a,Y=a},{X=b,Y=b}} {e Eqns X = Y e}, se v= X Y X is ground if and only if Y is ground {e Eqns X = t e e Y occorre in t},.. se v= X Y if X is ground then Y is ground astrazione della semantica concreta p(x,y) -> true q(x,y) -> X Y r(x,y) -> X & Y programma astratto p(x,y) :- lub Def (X,Y). q(x,y) :- X Y. r(x,y) :- glb Def (p(x,y),q(x,y)). semantica astratta p(x,y) -> true q(x,y) -> X Y r(x,y) -> X Y 6

Il dominio Pos Y X X bot true X Y X Y X&Y X Y programma p(x,y) :- X=a. p(x,y) :- Y=b. q(x,y) :- X=Y. r(x,y) :- p(x,y),q(x,y). Y γ pos (v) = semantica concreta p(x,y) -> {{X=a},{Y=b}} q(x,y) -> {{X=Y}} r(x,y) -> {{X=a,Y=a},{X=b,Y=b}} {e Eqns X oppure Y è legato ad un termine ground in e }, if v= X Y either X or Y is ground. astrazione della semantica concreta p(x,y) -> X Y q(x,y) -> X Y r(x,y) -> X & Y programma astratto p(x,y) :- lub pos (X,Y). q(x,y) :- X Y. r(x,y) :- glb pos (p(x,y),q(x,y)). semantica astratta p(x,y) -> X Y q(x,y) -> X Y r(x,y) -> X & Y 7

Verifica di programmi con Interpretazione Astratta F = funzione di valutazione semantica concreta abbastanza concreta per poter osservare la proprietà la proprietà è modellata da un dominio astratto (A, ) e da una inserzione di Galois α,γ F α = funzione di valutazione semantica astratta S α = specifica della proprietà, cioè astrazione della semantica concreta intesa correttezza parziale: α(lfp F) S α condizione sufficiente per la correttezza parziale: F α ( S α ) S α se F α ( S α ) S α allora S α è un prepuntofisso di F α quindi α(lfp F) lfp F α S α (Comini, Levi, Meo & Vitiello, JLP 99) 8

Analisi e Verifica F = funzione di valutazione semantica concreta F α = funzione di valutazione semantica astratta analisi: calcola lfp F α S α = specifica della proprietà dobbiamo calcolare un punto fissont dominio noetheriano oppure widening verifica: dimostra F α ( S α ) S α niente calcolo di punto fisso, nessuna necessità di domini noetheriani rappresentazione finita della specifica decidibilità di 9

Progetto sistematico di domini astratti una volta che abbiamo il dominio astratto, il progetto della semantica astratta è sistematico l interpretazione astratta fornisce anche risultati che possono essere sfruttati per rendere (più) sistematico il progetto di domini astratti per confrontare e combinare domini per raffinare domini con il fine di migliorarne la precisione prodotto ridotto (dei domini A e B) permette di analizzare (insieme) le proprietà modellate da A eb spesso fornisce risultati migliori delle due analisi separate per l interazione fra domini lifting al powerset (e completamento disgiuntivo ) più o meno, trasforma A in P(A) maggiore precisione nessuna perdita di informazione nel calcolo dei lub s 10

Operazioni sui Domini Astratti molti utili operatori su domini astratti (raffinamenti) un survey in (File, Giacobazzi & Ranzato, ACM Comput. Surv. 96) Completamento lineare (Giacobazzi, Ranzato & Scozzari, SAS 98) dipendenze funzionali modellate dall implicazione di logica lineare ricostruzione di tutti I domini noti per l analisi di groundness (Scozzari, SAS 97) DEF = G -> G POS = DEF -> DEF POS = POS -> POS ottimalità dipos poi applicata con successo ad altri domini in programmazione logica tipi (Levi & Spoto, PLILP 98) sharing e freeness (Levi & Spoto, PEPM 00) problemi aperti gli stessi raffinamenti si applicano anche ad altri paradigmi o ai sistemi di tipo? 11

Interpretazione astratta una teoria matematica semplice e solida su cui basare semantica comparativa analisi statica verifica una metodologia per la derivazione sistematica di domini astratti a partire dalla proprietà semantica astratta a partire dalla semantica concreta e dal dominio astratto 12