Thèse soutenue

Métacompilation et langages multiparadigmes

FR  |  
EN
Auteur / Autrice : Michel Gautero
Direction : Olivier Lecarme
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance en 1995
Etablissement(s) : Nice
Partenaire(s) de recherche : Autre partenaire : Université de Nice-Sophia Antipolis. Faculté des sciences
Jury : Président / Présidente : Jean-Claude Boussard
Examinateurs / Examinatrices : Annie Cavarero, Carine Fédèle
Rapporteur / Rapporteuse : Louis Féraud, Jacques Voiron

Résumé

FR  |  
EN

Alors que la qualité des applications est indissociable de celle des compilateurs, la construction de ceux-ci demeure encore bien souvent artisanale. En effet, les nombreux systèmes de métacompilation existants ne sont que peu utilisés. De plus, leur aide dans le domaine de la sémantique est la plupart du temps faible sinon inexistante ; la sémantique est pourtant la partie, non seulement la plus représentative d'un langage de programmation, mais aussi la plus complexe à implémenter. Elle est donc celle qui nécessite le plus d'outils. Après avoir dans une première partie mis ce fait en évidence par l'étude de plusieurs systèmes de métacompilation actuels, je présente une boite à outils de composants sémantiques réutilisables pour la construction de compilateurs. Cette présentation est faite à travers une analyse théorique et pratique de différents paradigmes de programmation : l'historique, l'expressivité, les avantages et les inconvénients mais aussi et surtout les mécanismes d'implémentation et la combinaison avec les autres paradigmes sont ainsi étudiés. La présentation de chaque paradigme s'accompagne de celle des composants sémantiques que j'ai créés à cette occasion. L'implémentation du langage multiparadigmes Leda à l'aide du système de métacompilation local, Cigale, valide ces outils, et montre la possibilité d'utiliser un langage intermédiaire prévu à l'origine pour les langages impératifs (le langage EM) pour l'implémentation de paradigmes récents. Je conclus en revenant sur la nécessité pour le programmeur d'avoir plusieurs paradigmes de programmation à sa disposition, soit sous la forme d'un langage multiparadigmes, soit sous la forme d'un environnement. Cela me permet de montrer l'utilité de disposer pour l'étude et l'implémentation de tels langages ou environnements, d'un système de métacompilation complet muni d'une boîte à outils de composants sémantiques. Je conclus sur des perspectives de recherche pour les systèmes de métacompilation