Commit dc79c1c0 authored by Marc's avatar Marc
Browse files

More

parent 3e8d8639
@inproceedings{cousot1977abstract,
title={Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints},
author={Cousot, Patrick and Cousot, Radhia},
booktitle={Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages},
booktitle={Proceedings of the 4th POPL},
pages={238--252},
year={1977},
organization={ACM}
......
......@@ -16,57 +16,47 @@
\section{Contexte scientifique}
Dans certains domaines, les bugs informtiques peuvent avoir de lourdes pertes
humaines, économiques ou environnementales. On parle alors de logiciel critique,
pour lesquels il faut obtenir de fortes garanties tant au niveau de la sureté
(le programme se comporte bien) que sécurité (le programme est protégé des
intrusions extérieures). Les méthodes formelles, en particulier l'interprétation
abstraite~\cite{cousot1977abstract} permettent de construire des algorithmes qui prouvent ces propriétés
Dans certains domaines, les bugs informatiques peuvent avoir de lourdes pertes humaines, économiques ou environnementales. On parle alors de logiciel critique, pour lesquels il faut obtenir de fortes garanties tant au niveau de la sûreté (le programme se comporte bien) que sécurité (le programme est protégé des intrusions extérieures). Les méthodes formelles, en particulier l'interprétation abstraite~\cite{cousot1977abstract} permettent de construire des algorithmes qui prouvent ces propriétés
au niveau sémantique.
L'équipe Antique a créé un analyseur de C, Astrée, spécialisé dans les
programmes embarqués. Cet analyseur a plusieurs succès industriels tels que la
vérification des commandes de vol de l'Airbus A340 et A380~\cite{astree}. Astrée a déjà
été étendu pour supporter l'analyse de programmes asynchrones~\cite{astreea}.
programmes embarqués. Cet analyseur a plusieurs succès industriels tels que la vérification des commandes de vol de l'Airbus A340 et A380~\cite{astree}. Astrée a déjà été étendu pour supporter l'analyse de programmes asynchrones~\cite{astreea}.
\section{Sujet}
Le projet actuel est d'étendre Astrée pour le rendre capable de prouver des
propriétés de sécurité en plus des propriétés de sureté. La première étape en ce
sens est le support dans Astrée de programmes C comportant des blocs de code
écrit en assembleur. L'assembleur offre un accès plus complet aux
fonctionnalités matérielles de l'ordinateur. Le processeur dispose en effet de
mécanismes de gestion des interruptions, exceptions et de la mémoire.
propriétés de sécurité en plus des propriétés de sureté. La première étape en ce sens est le support dans Astrée de programmes C comportant des blocs de code écrit en assembleur. L'assembleur offre un accès plus complet aux
fonctionnalités matérielles de l'ordinateur. Le processeur dispose en effet de mécanismes de gestion des interruptions, exceptions et de la mémoire.
L'analyse d'un logiciel qui utilise ces mécanismes, tel qu'un OS,
va au delà de la simple analyse d'un programme isolé dans une machine abstraite.
Il y a en effet des interactions entre l'OS et les programmes.
va au delà de la simple analyse d'un programme isolé dans une machine abstraite. Il y a en effet des interactions entre l'OS et les programmes.
Le but du stage est d'écrire la sémantique des interruptions, exceptions et des mécanismes de gestion de la mémoire bas niveau, pour un processeur Intel x86.
Le but du stage est d'écrire la sémantique des interruptions, exceptions et des
mécanismes de gestion de la mémoire bas niveau, pour un processeur Intel x86.
\section{Mission}
Objectif pour le stage :
- choisir un modèle pour décrire l'état mémoire d'une machine exécutant un OS et
\begin{itemize}
\item choisir un modèle pour décrire l'état mémoire d'une machine exécutant un OS et
des programmes ;
- écrire une sémantique dans ce modèle des mécanismes de gestion des
interuptions, des exceptions et des mécanismes de protection de la mémoire.
\item écrire une sémantique dans ce modèle des mécanismes de gestion des
interruptions, des exceptions et des mécanismes de protection de la mémoire.
Si le temps le permet :
- déterminer les propriétés dans ce modèle ;
- trouver une abstraction adéquate permettant de vérifier ces propriétés.
Il est attendu que le stagiaire ait des connaissances en sémantique et
éventuellement en interprétation abstraite. Des connaissances basiques en
architecture sont aussi nécessaires ainsi que de ne pas avoir peur de lire des
manuels d'Intel.
Le stage aura lieu dans l'équipe projet Inria Antique qui se trouve au
département d'informatique de l'ENS. L'équipe Antique, précédemment nommée
Abstraction est le chef de file mondial en interprétation abstraite.
L'équipe Abstraction, puis l'équipe Antique développe depuis 2001 l'analyseur
statique Astrée. Astrée~\cite{blanchet2003static} est un analyseur statique permettant de prouver
automatiquement l'absence d'erreurs d'exécution dans des logiciels emberqués.
Astrée est utilisé par l'industrie des domaines de l'avionique, du nucléaire,
automobile et aérospatial, principalement en Europe et Asie.
\emergencystretch=100em
\item déterminer les propriétés dans ce modèle ;
\item trouver une abstraction adéquate permettant de vérifier ces propriétés.
\end{itemize}
\section{Prérequis}
Il est attendu que le stagiaire ait des connaissances en sémantique et éventuellement en interprétation abstraite. Des connaissances basiques en architecture sont aussi nécessaires ainsi que de ne pas avoir peur de lire des manuels d'Intel.
\section{Équipe d'accueil}
Le stage aura lieu dans l'équipe projet Inria Antique qui se trouve au département d'informatique de l'ENS. L'équipe Antique, anciennement nommée Abstraction est le chef de file mondial en interprétation abstraite. L'interprétation abstraite est une théorie unifiée pour l'approximation de structures mathématiques~\cite{cousot1977abstract} qui a été inventé en 1977 par Patrick Cousot (fondateur de l'équipe Abstraction). L'interprétation abstraite est basée sur les idées que 1) le comportement des systèmes dynamiques peut être observé à différents niveaux d'abstraction et que 2) la comparaison entre deux niveaux d'abstraction peut être formellement définie par le truchement d'objets algébriques (comme des relations, des correspondances de Galois, des opérateurs de clôture, des idéaux etc.). L'interprétation abstraite peut être utilisée pour fournir un cadre à différentes méthodes d'analyses statiques ou pour dériver de nouveaux analyseurs statiques directement de la définition d'une relation d'abstraction. L'équipe Abstraction, puis l'équipe Antique développe depuis 2001 l'analyseur statique Astrée. Astrée~\cite{blanchet2003static} est un analyseur statique permettant de prouver automatiquement l'absence d'erreurs d'exécution dans des logiciels embarqués. Astrée est utilisé par l'industrie des domaines de l'avionique, du nucléaire, automobile et aérospatial, principalement en Europe et Asie.
\emergencystretch=1000em
\printbibliography
\end{document}
......
Dans certains domaines, les bugs informtiques peuvent avoir de lourdes pertes
Dans certains domaines, les bugs informatiques peuvent avoir de lourdes pertes
humaines, économiques ou environnementales. On parle alors de logiciel critique,
pour lesquels il faut obtenir de fortes garanties tant au niveau de la sureté
pour lesquels il faut obtenir de fortes garanties tant au niveau de la sûreté
(le programme se comporte bien) que sécurité (le programme est protégé des
intrusions extérieures). Les méthodes formelles, en particulier
l'interprétation[1] abstraite permettent de construire des algorithmes qui
......@@ -29,7 +29,7 @@ Objectif pour le stage :
- choisir un modèle pour décrire l'état mémoire d'une machine exécutant un OS et
des programmes ;
- écrire une sémantique dans ce modèle des mécanismes de gestion des
interuptions, des exceptions et des mécanismes de protection de la mémoire.
interruptions, des exceptions et des mécanismes de protection de la mémoire.
Si le temps le permet :
- déterminer les propriétés dans ce modèle ;
- trouver une abstraction adéquate permettant de vérifier ces propriétés.
......@@ -40,11 +40,11 @@ architecture sont aussi nécessaires ainsi que de ne pas avoir peur de lire des
manuels d'Intel.
Le stage aura lieu dans l'équipe projet Inria Antique qui se trouve au
département d'informatique de l'ENS. L'équipe Antique, précédemment nommée
département d'informatique de l'ENS. L'équipe Antique, anciennement nommée
Abstraction est le chef de file mondial en interprétation abstraite.
L'équipe Abstraction, puis l'équipe Antique développe depuis 2001 l'analyseur
statique Astrée. Astrée[4] est un analyseur statique permettant de prouver
automatiquement l'absence d'erreurs d'exécution dans des logiciels emberqués.
automatiquement l'absence d'erreurs d'exécution dans des logiciels embarqués.
Astrée est utilisé par l'industrie des domaines de l'avionique, du nucléaire,
automobile et aérospatial, principalement en Europe et Asie.
......@@ -52,5 +52,5 @@ automobile et aérospatial, principalement en Europe et Asie.
static analysis of programs by construction or approximation of fixpoints.
[2] www.astree.ens.fr/
[3] www.astreea.ens.fr/
[4] Blanchet, Cousot, Cousot, Feret, Mauborgne, Miné, Monniaux et Rival. A
[4] Blanchet, Cousot, Cousot, Feret, Mauborgne, Miné, Monniaux et Rival. A
static analyzer for large safety-critical software.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment