Vérification de programmes en code octet et ses applications / par Mariela Pavlova ; sous la direction de Gilles Barthe et de Lilian Burdy

Date :

Editeur / Publisher : [S.l.] : [s.n.] , 2007

Type : Livre / Book

Type : Thèse / Thesis

Langue / Language : anglais / English

Systèmes informatiques -- Évaluation

Programmation logique

SDL (langage de programmation)

Barthe, Gilles (1967-....) (Directeur de thèse / thesis advisor)

Burdy, Lilian (19..-.... ; informaticien) (Directeur de thèse / thesis advisor)

École doctorale Sciences et technologies de l'information et de la communication (Sophia Antipolis, Alpes-Maritimes) (Ecole doctorale associée à la thèse / doctoral school)

Université de Nice (1965-2019) (Organisme de soutenance / degree-grantor)

Université de Nice-Sophia Antipolis. Faculté des sciences (Organisme de soutenance / degree-grantor)

Relation : Vérification de programmes en code octet et ses applications / par Mariela Pavlova ; sous la direction de Gilles Barthe et de Lilian Burdy / Grenoble : Atelier national de reproduction des thèses , 2007

Résumé / Abstract : 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.

Résumé / Abstract : 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.