Métacompilation et langages multiparadigmes
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 |
Mots clés
Résumé
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