ObjectivAda : une extension objet du langage Ada : application à un environnement pour la conception de systèmes-experts
Auteur / Autrice : | Claude Fornarino |
Direction : | Paul Franchi-Zannettacci |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance en 1991 |
Etablissement(s) : | Nice |
Jury : | Président / Présidente : Jean-Claude Boussard |
Examinateurs / Examinatrices : Jean Bézivin, Bertrand Neveu, Christian Queinnec | |
Rapporteur / Rapporteuse : Véronique Donzeau-Gouge Viguié, Bernard Lang |
Résumé
Cette thèse est une étude prospective qui se situe dans le cadre des techniques et environnements de la programmation avancée. Elle est motivée par l'existence d'un fossé entre d'une part, les techniques de structuration des langages modulaires comme Ada, et d'autre part, les mécanismes de la programmation par objets. Dans ce mémoire, conscient des avantages de la programmation par objets tant au niveau de l'organisation des programmes que de la réutilisation ou de la flexibilité d'écriture, nous définissons ObjectivAda. C'est une extension du langage Ada qui intègre les mécanismes des langages à objets (classes, méthodes, héritage et envoi de messages), tout en assurant une triple compatibilité (syntaxique, sémantique et méthodologique) avec Ada. ObjectivAda est implémenté par un préprocesseur qui génère du code Ada. Nous montrons que les résolutions de l'héritage, du typage et de la surcharge ne peuvent être traitées séparément. Aussi proposons nous une extension de l'algorithme de surcharge Ada : la h-surcharge. Cette généralisation de la surcharge permet de résoudre des problèmes qui n'ont pas de solution en C++, pour un surcoût minimal. D'autres part, par la sémantique naturelle, nous exprimons la traduction du code ObjectivAda vers Ada, et la sémantique opérationnelle de notre modèle. Cette dernière est basée sur le concept de l'extension linéaire de clos et sur la définition d'une relation d'ordre sur le système de types. Le développement de trois applications valide ObjectivAda : la définition d'ObjectivAda en ObjectivAda, la réalisation d'un environnement graphique pour l’édition de programmes ObjectivAda et l'écriture d'un générateur de systèmes-experts en ObjectivAda. Ces applications permettent de situer ObjectivAda à la confluence du génie logiciel et de l'intelligence artificielle