Vérification de programmes en code octet et ses applications

par Mariela Pavlova

Thèse de doctorat en Informatique

Sous la direction de Gilles Barthe et de Lilian Burdy.


  • Résumé

    Les techniques de vérification basées sur les logiques de programmation ainsi que sur les générateurs de conditions de vérification permettent de raisonner de manière efficace sur les programmes. Bien que ces techniques aient souvent été utilisées avec des langages de haut niveau pour bénéficier de leurs structures, il est souvent nécessaire, plus spécifiquement dans le contexte du code mobile, de prouver la correction de programmes déjà compilés. C’est pourquoi il est très intéressant d’avoir un moyen pour utiliser la vérification de code source au niveau de l’utilisateur de code. Nous proposons un mécanisme qui permet de transférer des informations depuis le programme source vers le programme compilé. Il est construit autour d’un langage de spécification pour le code binaire, un générateur de conditions de vérification qui s’utilise sur des programmes annotés et un compilateur qui transforme les annotations au niveau du code source en des annotations au niveau du code binaire. Nous montrons que le générateur des conditions de vérification est correct et que les obligations de preuves au niveau du source et du code binaire sont presque les mêmes. Nous illustrons les bénéfices de notre démarche par deux études de cas.

  • Titre traduit

    A framework for formal verification of Java bytecode against functional and security policies


  • Résumé

    Program verification techniques based on programming logics and verification condition generators provide a powerful means to reason about programs. Whereas these techniques have very often been employed in the context of high-level languages in order to benefit from their structural nature. It is often required, especially in the context of mobile code, to prove the correctness of compiled programs. Thus it is highly desirable to have a means of bringing the benefits of source code verification to code consumers. We propose a mechanism that allows to transfer evidence from source programs to compiled programs. It builds upon a specification language for bytecode, a verification condition generator that operates on annotated programs, and a compiler that transforms source annotations into bytecode annotations. We show that the verification condition generator is sound, and that the proof bytecode level nearly coincides. We illustrate the benefits of oue framework in two case studies.

Consulter en bibliothèque

La version de soutenance existe sous forme papier

Informations

  • Détails : 1 vol. (x-151 p.)
  • Annexes : Bibliogr. p. [145]-151

Où se trouve cette thèse ?

  • Bibliothèque : Université Nice Sophia Antipolis. Service commun de la documentation. Bibliothèque Sciences.
  • Non disponible pour le PEB
  • Cote : 07NICE4010
Voir dans le Sudoc, catalogue collectif des bibliothèques de l'enseignement supérieur et de la recherche.