![]()
Précédent : Grands domaines
d'application Remonter : Projet
PARA, Parallélisme Suivant : Résultats nouveaux
Ce logiciel est disponible sur le réseau en http://pauillac.inria.fr/join. Le système se compose d'un compilateur à byte-code, d'un environnement d'exécution, ainsi que d'une centaine de pages de documentation. Tant le compilateur que l'environnement d'exécution sont écrits en Caml, ce sont des programmes conséquents qui totalisent plus de 20000 lignes de code. Le développement proprement dit (comprenant l'écriture de la documentation) a duré environ 12 mois.
Ont également été écrits un certain nombre d'exemples, aussi disponibles en ligne, qui illustrent les possibilités du langage, notamment par Cristiana Toutet (stagiaire du MIT en juin et juillet).
Les méthodes citées au
paragraphe §
ont été implantées dans notre analyseur statique IABC (INRIA
Interprocedural Array Bounds Checking), que nous avons doté d'un
frontal ADA 83. Nous avons appliqué cet analyseur, avec le
concours de l'Aérospatiale, sur deux des logiciels embarqués du
lanceur Ariane 5 (programme de vol et centrale inertielle).
Ces derniers représentent un volume de l'ordre de 80000 lignes de
code ADA.
Cette étude constitue à notre connaissance une première quand à l'application de l'analyse statique par interprétation abstraite à des programmes industriels de taille significative. De surcroît, il s'agit ici de logiciels temps-réel. Le prototype IABC a permis une première validation de l'approche, et en complément des vérifications effectuées par ailleurs, d'améliorer la sûreté de fonctionnement du programme de vol Ariane 5 durant la préparation au vol 502.
Les algorithmes
d'analyse d'échappement en
présentés au paragraphe §
ont été implantés par
B. Blanchet dans une version expérimentale du compilateur
Caml Special-Light de X. Leroy (projet CRISTAL).
Les résultats obtenus par cette analyse sont tout à fait satisfaisants. L'expérimentation, sur des programmes comme le compilateur Caml CSL ou le système Coq (environ 60000 lignes), a montré la faisabilité de l'analyse. Son coût permet de l'appliquer à tous les programmes au prix d'un surcoût à la compilation tout à fait acceptable, qui ne dépasse pas 20%. Elle a montré aussi l'intérêt de l'allocation en pile, puisqu'on obtient des gains de temps importants: souvent 5 à 20%, quelquefois plus dans des cas particulièrement favorables.
Le système Caml du projet CRISTAL utilise un glaneur de cellules conçu et programmé par D. Doligez. Ce système est très critique pour la bonne performance de Caml ou OCaml développé au sein du projet CRISTAL. Par ailleurs, la notion de pointeur faible et le compactage de la mémoire ont été rajoutés en 1997.