ANALISI E VERIFICA DI PROGRAMMI
AA 2009/'10
prof.
A. Cortesi
Orario delle lezioni: Lunedi (11.00-12.30) e Giovedi (11-12.30)
Ricevimento: Giovedi (13.00-14.00)
Risultati
dei questionari di Valutazione degli studenti
Obiettivo
L'obiettivo del corso e` fornire una conoscenza
sull'applicazione di metodi formali per l'analisi e la verifica di programmi.
Programma
- Panoramica dei metodi formali di analisi
e verifica di programmi: caratteristiche e limiti
- Ordini Parziali e Reticoli
- Punti Fissi e operatori di widening
- Semantiche astratte
- Interpretazione astratta
- Analisi statica basata su analisi dataflow
- Analisi classiche di liveness, reaching definition,
constant propagation, etc.
- Trasformazioni e ottimizzazioni del codice
basate sull'analisi
- Model Checking di sistemi a stati finiti:
specifica del sistema e delle proprieta' da verificare, logiche temporali.
- Casi di studio e temi avanzati di ricerca
- Esercitazioni in laboratorio
Testi
di riferimento
- F.Nielson, H.R.Nielson, C. Hankin:
Principles of Program Analysis, Springer Verlag, 2004
- B.Berard et al., Systems and Software
Verifications. Springer Verlag 2001.
Materiale Corso di Laboratorio
- The Java Virtual Machine Specification (HTML, in particolare capitolo 6 HTML)
- jclasslib (Freeware), programma per vedere il bytecode contenuto in un file .class
Modalita'
d'esame
Discussione di un progetto
(da svolgersi a coppie) e prova orale sul contenuto del corso.
Progetto AA 2009/10:
Progetto AA 2008/09:
Materiale didattico presentato a lezione
(to be updated)
- Introduzione (ppt)
- Ordini parziali e reticoli (ppt)
- Punti Fissi (ppt)
- Semantiche (ppt)
- Interpretazione astratta (ppt)
- Interpretazione astratta (ppt)
- Analisi statica basata su
dataflow analysis: Liveness Analysis (ppt)
- Reaching Definitions, Available
Expressions, Very Busy Expressions (ppt)
- General Framework, Analisi non distributive,
Constant Propagation (ppt)
- Analisi interprocedurale (ppt)
- Model Checking (ppt)
- Model Checking(ppt)
- Interpretazione Astratta di Basi di Dati Relazionali (pdf)
- Watermarking di Basi di Dati Relazionali (pdf1 - pdf1)
- Interpretazione Astratta: Operatori di Widening (pdf)
- Control Flow Analysis: Information Flow in Mobile Ambients (ppt)
- Manipulating Abstract Domains
and Abstract Operations
for Static Analysis of (Declarative) Programs (pdf)
Appunti delle lezioni (a cura di G.Costantini e G.Maggiore)
Risorse in Rete