La Programmation Orientée Langage est un paradigme de programmation qui tente, par la technique de méta-programmation, de changer les habitudes des développeurs de systèmes informatiques en leur permettant de "travailler en termes de concepts et notions du problème à résoudre, au lieu d'être toujours obligés de traduire leurs idées aux notions qu'un langage généraliste est capable de comprendre" (Ward et Sergey). Le développement de logiciels passe de ce fait par la conception de langages dédiés : on définit un ou plusieurs langages qui capturent les caractéristiques du domaine étudié, puis on écrit les applications visées en utilisant ces langages. Dans cette thèse, nous proposons une démarche méthodologique de développement logiciel reposant sur ce concept. Il s'agit de conduire la même démarche méthodologique au niveau des langages que ce qui est classiquement fait au niveau des composants logiciels. En l'occurrence, nous utilisons le formalisme des grammaires attribuées pour tenter de répondre à la question suivante : comment peut-on créer de nouveaux langages par composition de langages réutilisables existants ? Nous tirons profit de leur traduction en algèbres de combinateurs fonctionnels pour définir des spécifications exécutables de langages dédiés (vus comme composants logiciels), plongés dans le langage fonctionnel pur Haskell. \' partir d'exemples significatifs d'extension et de réutilisation de langages dédiés (par stratification de ceux-ci, ou par changement de monade), nous proposons un typage de langages dédiés en vue de leur assemblage et leur réutilisation. Pour illustrer cette démarche, nous décrivons un langage dédié (bibliothèque de combinateurs) pour l'édition de documents structurés. Un document y est représenté par un zipper attribué, une structure arborescente localisable, représentant un arbre et son contexte, et caractérisée par une grammaire attribuée. L'édition consiste alors à la modification interactive de cette structure ; ce qui entraîne une réévaluation totale ou partielle des attributs. L'édition peut aussi être réalisée à travers une vue abstraite obtenue par projection de la structure concrète. Ce qui pose le problème de \textit, un problème familier de la communauté des bases de données, auquel nous donnons une solution grâce à nos combinateurs d'éditeurs.
Identifer | oai:union.ndltd.org:CCSD/oai:tel.archives-ouvertes.fr:tel-00555556 |
Date | 21 December 2010 |
Creators | Fotsing, Bernard |
Publisher | Université Rennes 1 |
Source Sets | CCSD theses-EN-ligne, France |
Language | French |
Detected Language | French |
Type | PhD thesis |
Page generated in 0.0026 seconds