Projet Para

previous up next contents
Précédent : Grands domaines d'application Remonter : Projet PARA, Parallélisme Suivant : Résultats nouveaux



Logiciels

 

Le join-calcul 1.02

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).

L'analyseur statique IABC

  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.

Glaneur de cellules statique

  Les algorithmes d'analyse d'échappement en $O(n \log^2{n})$ 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.

Glaneur de cellules de Caml

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.



previous up next contents Précédent : Grands domaines d'application Remonter : Projet PARA, Parallélisme Suivant : Résultats nouveaux