![]()
Précédent : Composition de l'équipe Remonter :
PROJET
CROAP Suivant : Actions de recherche
L'objectif du projet est d'étudier les outils nécessaires pour produire du logiciel complexe et fiable, et la collaboration de ces outils dans des environnements de travail conviviaux et efficaces. La réalisation de cet objectif passe par trois thèmes principaux : la réalisation d'outils adaptés à des styles de programmation variés, l'étude formelle des langages de programmation et la maîtrise des fondements théoriques communs à de larges classes de ces langages.
Notre étude de différents styles de programmation se traduit par la réalisation d'environnements de programmation spécialement adaptés à plusieurs langages, chacun représentant une grande classe de styles et de langages de programmation. Ainsi, nous étudions des outils pour le langage ML (programmation fonctionnelle), les langages Eiffel et Java (programmation à objets et concurrence), le langage Sisal (programmation parallèle à flots de données) et le langage C (programmation impérative). Pour chaque langage, nous abordons des outils différents de l'environnement de programmation. Ainsi, nous étudions l'exécution symbolique d'Eiffel et le typage pour le langage ML. De façon plus prospective, nous étudions également des environnements spécialisés pour la conception conjointe de logiciel et de matériel ou pour la preuve de résultats mathématiques. Sans être directement des travaux sur des langages de programmation, ces expériences nous permettent d'aborder l'intégration d'outils dans des environnements hétérogènes, où les données manipulées sont également très diverses. Surtout, les travaux sur un environnement de preuve mathématique permettent également d'expérimenter avec le développement de programmes prouvés corrects.
Pour étudier les langages de programmation, nous utilisons notre propre méthode, dite Sémantique Naturelle, pour laquelle nous développons un laboratoire d'expérimentation très complet autour du formalisme TYPOL. Nous nous efforçons d'avoir des implantations réalistes pour ce formalisme. Ces implantations nous permettent de décrire formellement des outils de programmation tels que des compilateurs ou des interprètes pour des langages de programmation très variés.
Pour assurer la validité et la cohérence des différentes implantations du formalisme TYPOL, ainsi que pour en permettre l'extension à de nouvelles approches de spécification, il est également nécessaire d'inclure dans notre programme de recherche une étude théorique de ses fondements logiques. Cette étude théorique doit permettre d'intégrer au langage de spécification des paradigmes évolués comme la syntaxe abstraite d'ordre supérieur et de fournir un véritable atelier pour l'étude formelle des langages de programmation.
L'ensemble des expériences réalisées dans le projet utilise les compétences et les outils réunis dans un système de génération d'environnements de programmation interactifs, le système Centaur. Ce système est donc à la fois la cristallisation de notre savoir-faire et la panoplie d'outils nécessaire à nos nouvelles expériences.
Comme point marquant pour cette année, nous pouvons remarquer notre participation à la conclusion de la phase 1 du projet de collaboration Génie, qui a reçu une évaluation très favorable. Notons également le démarrage d'une action dans le cadre du G.I.E. Dyade et la déclaration d'intérêt de Novell, un des acteurs du marché des logiciels professionnels américains, pour nos travaux sur les langages à objets et parallèles.