23/11/06dino puller1 analisi statica in tempo reale con domini numerici facoltà di scienze...
TRANSCRIPT
![Page 1: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/1.jpg)
23/11/06 Dino Puller 1
Analisi statica in tempo reale con Analisi statica in tempo reale con domini numericidomini numerici
Facoltà di scienze MM.FF.NN.
Università degli studi di Verona
![Page 2: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/2.jpg)
23/11/06 Dino Puller 2
Obiettivi della tesiObiettivi della tesi
Creare un analizzatore statico che operi in tempo reale
Migliorare la precisione del dominio astratto degli intervalli
![Page 3: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/3.jpg)
23/11/06 Dino Puller 4
Analisi staticaAnalisi statica
Indispensabile per progetti mission-critical
Riduce il numero di bugRiduce il tempo di verificaSvantaggi:
– Nuova fase nel ciclo di vita del software– L’analisi può essere lunga
![Page 4: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/4.jpg)
23/11/06 Dino Puller 5
Idea: Analisi in tempo realeIdea: Analisi in tempo reale
Ambiente di sviluppo con analisi statica integrata– Interpretazione astratta
Ad ogni modifica del codice mostri le invarianti calcolate
![Page 5: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/5.jpg)
23/11/06 Dino Puller 6
ProblemiProblemi
Impossibile per un intero progettoLinguaggi troppo complessi
– Side effect– Strutture dati
Chiamata a funzione– Ricorsione– Virtualmente un singolo algoritmo può
essere troppo lungo
![Page 6: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/6.jpg)
23/11/06 Dino Puller 7
SoluzioniSoluzioni
Analisi di un singolo algoritmo– Raramente supera le cento righe
Nuovo linguaggio “Toy” più semplice:– Intervalli interi– If, while, chimata a funzione– Nessuna struttura dati– Ricorsione vietata
Cache di chiamate a funzione:– Chiave: Nome funzione + parametri– Risultato: invariante calcolata
![Page 7: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/7.jpg)
23/11/06 Dino Puller 8
Metodi di analisiMetodi di analisi
Dominio astratto degli intervalli Linearizzazione Linearizzazione + Dominio di costanti
simbolicheNuove tecniche: Intervalli + Semplificazione algebrica +
Dominio di costanti simboliche Semplificazione algebrica + Dominio di costanti
simboliche + Linearizzazione
![Page 8: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/8.jpg)
23/11/06 Dino Puller 9
LinearizzazioneLinearizzazione
Riscrive espressioni lavorando sulla sintassi Può semplificare gli addendi Esempio:
X ← [0, 1]
Y ← [0, 10]
Z ← [0, 20]
T ← X × Y − X × Z + Z T → [0, 30]
![Page 9: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/9.jpg)
23/11/06 Dino Puller 10
Dominio di costanti simbolicheDominio di costanti simboliche
Ad ogni assegnamento propaga espressioni Esempio:
X ← [0, 5]
T ← X
Y ← T − 2 × X Diventa: Y ← X − 2 × X Con la linearizzazione: Y → − X
![Page 10: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/10.jpg)
23/11/06 Dino Puller 11
Svantaggi della linearizzazioneSvantaggi della linearizzazione
La linearizzazione semplifica solo somme e sottrazioni
Usa tecniche euristicheSfrutta la forma affine che non è capace
di gestire i prodotti
![Page 11: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/11.jpg)
23/11/06 Dino Puller 12
Algebra simbolicaAlgebra simbolica
Esempio:a ← [1, 5]b ← [−5, 5]c ← [1, 5]d ← a + b − az ← a × b/a − d
Linearizzazione + dominio di costanti
z → [−20, 20] Algebra simbolica
z → [0, 0]
Rappresentazione di espressioni algebriche in forma letterale–Simile a quella usata in analisi matematica–Gestita da alberi simbolici–Fa uso del Dominio delle costanti simboliche
![Page 12: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/12.jpg)
23/11/06 Dino Puller 13
Metodo mistoMetodo misto
In alcuni casi la linearizzazione è superiore perché valuta espressioni per cercare nuove semplificazioni
Metto tutto assieme:1. Semplifico con l’algebra simbolica
2. Uso la linearizzazione per ulteriori semplificazioni
![Page 13: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/13.jpg)
23/11/06 Dino Puller 14
L’analizzatore in azioneL’analizzatore in azione
Filmato del programma
![Page 14: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/14.jpg)
23/11/06
![Page 15: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/15.jpg)
23/11/06 Dino Puller 16
Il resto della divisioneIl resto della divisione
a ← [0 ,10]
b ← 3
c ← mod(a,b)Con ogni metodo di analisi:
c → [−9, 10]
![Page 16: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/16.jpg)
23/11/06 Dino Puller 17
EuclideEuclide
a ← [0 ,10]b ← 3c ← mcd(a,b)c → [1,+∞] perché abbiamo un ciclo e
mod cresce anziché diminuire Restrizione
mod ← clamp (mod, 0 , y−1)c → [1,3]
while y>0 do
z ← x
x ← y
y ← mod (z,y)
end
![Page 17: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/17.jpg)
23/11/06 Dino Puller 18
Divisione per ZeroDivisione per Zero
Introduciamo un errore
while y>=0 do
z ← x
x ← y
y ← mod( z , y )
end
MCD:mcd → [⊥]x → [⊥]y → [⊥]z → [0, 10]
![Page 18: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/18.jpg)
23/11/06 Dino Puller 19
Ciclo infinitoCiclo infinito
X ← 0
while x < 100 do
x ← x − 1
end x → [ ]⊥
– Operazione svolta¬ Guardia = [100 , +]lfp(x) = [-,0][100 , +] ∩ [-,0] =
![Page 19: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/19.jpg)
23/11/06 Dino Puller 20
Un problema di fisicaUn problema di fisica
Calcolo dell’accelerazione del centro di massa
g ← [9 ,10]
m ← [1 ,10]
r ← [1 ,5]
s i n _ a l f a ← 1/2
Ia ← 3 × m × r × r / 2
Acm ← m × g × r × r × s i n _ a l f a / I a
Intervalli/linearizzazione
Ia → [1, 375]Acm → [0, 1667]
Algebra simbolica
Ia → [1, 375]Acm → [3, 7]
![Page 20: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/20.jpg)
23/11/06 Dino Puller 21
Software di bordoSoftware di bordo
Altimetro– Calcolato in base alla pressione interpolando
valori da una tabella altitude → [ ]⊥ Dopo modifica a interpolate semanticamente
equivalente interpolate ← interp( x, x∪ ∪ 0, x∪ 1 , y∪ 0 , y∪ 1 )
∪interpolate ← interp(x, x0, x1 , y0 , y1 ) altitude → [0, 20669] Risultato corretto
![Page 21: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/21.jpg)
23/11/06 Dino Puller 22
Risultati ottenutiRisultati ottenuti
Sviluppato un prototipo capace di– Analisi statica in tempo reale– Gestire intervalli di test– Cache per evitare analisi inutili– 5 metodi di analisi– Allarmi
• Overflow• Underflow• Divisione per zero• Non terminazione dei cicli
![Page 22: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/22.jpg)
23/11/06 Dino Puller 23
Commenti sugli esempiCommenti sugli esempi
Verificati 6 programmi– 2 programmi senza allarmi– 2 allarmi positivi– 2 falsi allarmi
• eliminato grazie alla funzione di restrizione• eliminato modificando interpolate mantenendola
semanticamente equivalenteRisultati indipendenti dal metodo di analisi
– Eccetto nel problema di fisica
![Page 23: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/23.jpg)
23/11/06 Dino Puller 24
ConclusioniConclusioni
Dimostrata la fattibilità di una analisi statica in tempo reale
Dimostrata la correttezza di algoritmi– seppur con qualche modifica– usando il dominio astratto degli intervalli
Individuato allarmi positiviDimostrata l'utilità di riscrittura delle
espressioni per migliorare domini astratti
![Page 24: 23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona](https://reader034.vdocuments.mx/reader034/viewer/2022051515/5542eb4a497959361e8b630c/html5/thumbnails/24.jpg)
23/11/06 Dino Puller 25
Lavori futuriLavori futuri
Aggiungere nuovi domini astratti– Ottagoni– Poliedri
Potenziare la semplificazione algebrica con nuove regole– Raccogliere a fattor comune
Trasformazioni semantiche equivalenti non solo su espressioni