03.06.2013 Views

Un modello integrato control-flow e data-flow per il rilevamento ...

Un modello integrato control-flow e data-flow per il rilevamento ...

Un modello integrato control-flow e data-flow per il rilevamento ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

48 3. <strong>Un</strong> <strong>modello</strong> che integra <strong>control</strong> <strong>flow</strong> e <strong>data</strong> <strong>flow</strong><br />

parametro P durante <strong>il</strong> training può venir associato un insieme di valori ammissib<strong>il</strong>i<br />

o un range. Durante la verifica non si deve far altro che accertarsi della presenza del<br />

valore attuale di P nell’insieme o nel range appresi. Per quanto riguarda le relazioni<br />

binarie, come si è visto l’algoritmo è in grado di apprendere delle formule logiche <strong>per</strong><br />

ognuno dei parametri monitorati. Si tratta quindi di fare <strong>il</strong> lookup di quella formula<br />

e di verificarne la verità. Questo implica la necessità di dover mantenere una tabella<br />

con tutti gli ultimi valori visti <strong>per</strong> i vari parametri.<br />

Algoritmo 6: Algoritmo di verifica.<br />

unaryOk(s, {p1, . . . , pn})<br />

begin<br />

for i ∈ {1, . . . , n} do<br />

if value(pi) ∈ V als[s][pi] then<br />

return false<br />

end<br />

end<br />

return true<br />

end<br />

binaryOk(s, {p1, . . . , pn})<br />

begin<br />

for i ∈ {1, . . . , n} do<br />

if 3.1 does not hold then<br />

return false<br />

end<br />

end<br />

return true<br />

end<br />

verify(Stack s, Stack s ′ , P arams {p ′ 1 , . . . , p′ n ′})<br />

begin<br />

if !successor(s, s ′ ) then<br />

alert(“Control <strong>flow</strong> anomaly”)<br />

end<br />

if !unaryOk(s ′ , {p ′ 1 , . . . , p′ n ′}) then<br />

alert(“Data <strong>flow</strong> anomaly on unary relations”)<br />

end<br />

if !binaryOk(s ′ , {p ′ 1 , . . . , p′ n ′}) then<br />

alert(“Data <strong>flow</strong> anomaly on binary relations”)<br />

end<br />

end

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!