Skip to Main content Skip to Navigation
Theses

On modularity and performance of External Domain-Specific Language implementations

Manuel Leduc 1
1 DiverSe - Diversity-centric Software Engineering
Inria Rennes – Bretagne Atlantique , IRISA-D4 - LANGAGE ET GÉNIE LOGICIEL
Résumé : L’Ingénierie Dirigée par les Modèles (IDM) a pour but d’assister les experts métiers dans le développement de systèmes complexes, en séparant les préoccupations par l’utilisation de modèles. Les modèles sont des représentations d’aspects spécifiques des systèmes et sont définis à l’aide d’abstractions dédiées. Ces abstractions sont définies avec des langages dédiés. Ces langages dédiés sont créés à l’aide d’Environnements de Développement Intégré (EDI) spécialisés, appelés language workbenches. Les language workbenches aident à l’ingénierie de langages dédiés en proposant des abstractions utiles. Premièrement, ces abstractions sont dédiées à la définition des différents aspects des langages. Ensuite, elles répondent aux préoccupations inhérentes au développement de logiciels tels que la modularité ou la testabilité. Cependant, les bénéfices de telles abstractions peuvent être perdues quand traduites vers des implémentations de services de langages (p. ex. éditeurs, interpréteurs, débogueurs...). Cela entraîne de nombreux inconvénients, en particulier concernant la réutilisabilité et les performances. Les experts métiers sont confrontés à ces limitations et sont forcés de raisonner à travers les détails d’implémentations complexes des implémentations des services de langages. Ces problèmes peuvent être atténués en exploitant les informations fournies par les abstractions de langages dédiés. Pour ce faire, nous proposons deux patrons d’implémentation qui supportent la réutilisation et les performances. Ainsi qu’une traduction systématique depuis les spécifications de langages vers ces patrons. Le premier patron d’implémentation s’attaque à la réutilisation de langages et s’appelle REVISITOR. Le REVISITOR permet la réutilisation sûre et modulaire de langages, à la fois syntaxiquement et sémantiquement, tout en s’appuyant uniquement sur des concepts courants de programmation orientée objet. Le second patron d’implémentation adresse la performance des langages. Celles-ci sont améliorées par l’introduction d’optimisations spécifiques au langage. Ces optimisations sont introduites automatiquement, sans être intrusif de la manière usuelle de définir les langages. Nous intégrons de manière transparent notre approche dans l’écosystème de l’EDI Eclipse. Pour ce faire, nous utilisons deux métalangages : Ecore et ALE. Ecore supporte la spécification de syntaxes abstraites sous la forme de méta-modèles. Ecore est fourni dans le cadriciel EMF , standard du monde industriel. ALE supporte la spécification modulaire de sémantiques de langages par-dessus les méta-modèles Ecore. Nous fournissons deux compilateurs pour ces langages. Ils autorisent respectivement la compilation des spécifications de langages vers le patron REVISITOR ou l’introduction automatique d’optimisation de performance dans les implémentations des interpréteurs. Nous évaluons les bénéfices de ces approches par l’implémentation d’une sélection variée et hétérogène de langages dédiés. Nos contributions rendent possible l’implémentation de langages dédiés réutilisable et efficaces (bien qu’actuellement séparées, nous travaillons à leur intégration) pour les experts métiers. En pratique, notre approche est à la fois non-intrusive de l’ingénierie des langages et basée sur une génération systématique des implémentations. Par conséquent, notre approche est directement applicable dans un contexte industriel et peut être intégrée avec des artefacts de langages dédiés existants.
Document type :
Theses
Complete list of metadatas

Cited literature [203 references]  Display  Hide  Download

https://hal.inria.fr/tel-02418676
Contributor : Manuel Leduc <>
Submitted on : Sunday, February 23, 2020 - 12:56:11 AM
Last modification on : Wednesday, June 24, 2020 - 4:19:50 PM
Document(s) archivé(s) le : Sunday, May 24, 2020 - 12:25:55 PM

File

main-final.pdf
Files produced by the author(s)

Identifiers

  • HAL Id : tel-02418676, version 1

Citation

Manuel Leduc. On modularity and performance of External Domain-Specific Language implementations. Software Engineering [cs.SE]. Université de rennes 1, 2019. English. ⟨tel-02418676⟩

Share

Metrics

Record views

88

Files downloads

167