
J’ai eu la chance de participer, pour
Objet Direct, la semaine dernière, aux
QCon à
Londres. Malgré de nombreuses interventions de haut niveau, il y avait, malheureusement, peu de speach en rapport avec l’approche MD. Le thème sur les DSL était probablement le plus proche de mes préoccupations du moment. Le speach le plus intéressant était celui de Markus Völter,
External Textual DSLs made simple, qui présentait XText. Il s’agit d’un outillage eclipse qui permet très simplement de produire un environnement de développement pour un DSL.
En effet, un des prérequis à l’adoption de DSL est la disponibilité d’outils de « développement » associé. Personne n’acceptera d’utiliser un DSL avec Word comme IDE…
Le principe de XText est simple : en entrée, on fournit une grammaire BNF du DSL (plus quelques infos facultatives supplémentaires : contraintes exprimées en OCL, contenu et structure des vues sur le code), l’outil génère, sous forme d’un plugin eclipse, un parseur, un modèle cible (EMF), un compilateur vers ce modèle et un éditeur qui fournit tout ce qu’on attend : coloration syntaxique, complétion du code, vue « outline » personnalisable, validation temps réel de contraintes.
Le « DSL-IDE » produisant de l’EMF, il est possible d’exploiter sa sortie avec tout l’outillage diponible : visualisation graphique, transformateurs de modèle, générateurs de code. En particulier, il est possible d’intégrer la compilation de ce DSL dans une chaîne de transformation OpenArchitectureWare (oAW Workflow).
Je pense essayer rapidement l’outil avec un petit langage orienté vers la saisie d’exigences métier. Je vous tiendrai au courant.