previous up next contents
Précédent : Logiciel ELAN Remonter : Cadre logique pour Suivant : Actions industrielles

Validation de programmes logiques

Participant : Adel Bouhoula

Plusieurs approches ont été proposées pour permettre le diagnostic de programmes logiques. Cependant, la plupart de ces méthodes manipulent des oracles, nécessitent de nombreuses interactions avec l'utilisateur et permettent simplement de détecter et localiser les erreurs, mais non de les corriger.

La propriété de complétude d'un programme logique par rapport à une spécification est très importante dans le problème du diagnostic puisqu'elle garantit que le programmeur n'a pas oublié de clauses dans le processus de développement. Nous proposons, en collaboration avec K. Bsaies (INRIA-Lorraine), une procédure de semi-décision pour tester cette propriété de complétude (qui est indécidable). Cette procédure, au delà d'une simple réponse éventuelle par ``oui'' ou par ``non'', aide à construire des programmes logiques complets. Nous avons également décrit une stratégie permettant de détecter les clauses fautives et de proposer des corrections. Notre méthode, fondée sur l'utilisation des informations statiques que sont les modes d' entrées-sorties et de types, a été implantée en Caml Light. Nous avons pu détecter des erreurs et les corriger dans plusieurs programmes logiques non triviaux et ceci d'une manière totalement automatique ou avec une interaction minimale avec l'utilisateur.