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.
Pon a prueba tus conocimientos con 12 preguntas sobre 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 ?
Revisa el curso completo en la hoja de repaso para Analyse avancée de la sécurité et preuve de programmes.
Ver hoja de repaso →Bases de données
Bases de données
Programmation
Programmation
Importa tu curso y la IA genera tarjetas de memoria en 30 segundos.
Generador de tarjetas de memoria