Analyse de liveness — définition ?
Détermine si une variable influence une observation future.
Affectation morte — quand ?
Quand x ∉ Lo après l'affectation.
Code mort — élimination ?
Suppression d'instructions inutiles sans changer le comportement.
Boucle while — invariant ?
Calculé par point fixe jusqu'à stabilité.
Variable live — influence ?
Peut affecter une observation future.
Initialisation Java — problème ?
Variables non initialisées détectées par sur-approximation.
Analyse en arrière — rôle ?
Ajoute obs(T) pour variables bien initialisées.
Analyse en avant — rôle ?
Vérifie que variables utilisées sont initialisées.
Null pointer — domaine ?
Modélise nullité pour détection d'erreurs.
Invariant boucle — propriété ?
Vrai à l'entrée, conservé, garantit la postcondition.
Variables bien initialisées — définition ?
Ne sont pas live-in à l'entrée.
Boucle while — condition de sortie ?
Croiser invariant avec ¬C pour raffiner l'état.
Code mort — impact ?
Optimise sans changer le comportement observable.
Initialisation Java — problème indécidable ?
Oui, sur-approximation conservative nécessaire.
Nullité — assertion ?
Croise nullité avec domaine abstrait.
CFG — syntaxe ?
pc:=PC1; assume; Kk; Bk; branches conditionnelles.
CFG — état abstrait ?
Associe chaque PC à L ou G(p').
CFG — règle branchement ?
Test inutile si LA(p1)=LA(p2) et C morte.
Itération CFG — but ?
Atteindre stabilité des états jusqu'au point fixe.
Domaine pointeurs — représentation ?
(Z,N) : Z=F si non NULL, N=F si NULL.
Déréférencement — règle ?
Vert si p ≠ NULL certain, rouge si NULL certain.
Assertions nullité — croisement ?
Avec couples (Z,N), intersection pour compatibilité.
Prove WP — objectif ?
Vérifier invariants, pré/postconditions, terminaison.
Vulnérabilités C classiques ?
Débordements, comportements indéfinis, UAF, injections.
Teste dein Wissen mit 12 Fragen zu Analyse avancée de la sécurité et preuve de programmes.
1. Quel est le rôle principal de l'analyse de liveness dans l'optimisation des programmes ?
2. En quoi l'analyse d'initialisation en avant diffère-t-elle de l'analyse en arrière en Java ?
Überprüfe den vollständigen Kurs im Lernzettel zu Analyse avancée de la sécurité et preuve de programmes.
Lernzettel ansehen →Bases de données
Bases de données
Programmation
Programmation
Importiere deinen Kurs und die KI erstellt in 30 Sekunden Karteikarten.
Karteikarten-Generator