A Generative Programming Approach To Developing DSL Compilers

Charles Consel 1, 2 Fabien Latry 1, 2 Laurent Réveillère 1, 2 Pierre Cointe 3
2 Phoenix - Programming Language Technology For Communication Services
LaBRI - Laboratoire Bordelais de Recherche en Informatique, Inria Bordeaux - Sud-Ouest, EA4136 - Handicap et système nerveux :Action, communication, interaction: rétablissement de la fonction et de la participation [Bordeaux]
3 OBASCO - Objects, aspects and components
Mines Nantes - Mines Nantes, Inria Rennes – Bretagne Atlantique
Abstract : Domain-Specific Languages (DSLs) represent a proven approach to raising the abstraction level of programming. They offer high-level constructs and notations dedicated to a domain, structuring program design, easing program writing, masking the intricacies of underlying software layers, and guaranteeing critical properties. On the one hand, DSLs facilitate a straightforward mapping between a conceptual model and a solution expressed in a specific programming language. On the other hand, DSLs complicate the compilation process because of the gap in the abstraction level between the source and target language. The nature of DSLs make their compilation very different from the compilation of common General-Purpose Languages (GPLs). In fact, a DSL compiler generally produces code written in a GPL; low-level compilation is left to the compiler of the target GPL. In essence, a DSL compiler defines some mapping of the high-level information and features of a DSL into the target GPL and underlying layers (e.g., middleware, protocols, objects, ...). This paper presents a methodology to develop DSL compilers, centered around the use of generative programming tools. Our approach enables to structure the development of a DSL compiler on facets that represent dimensions of compilation. Each facet can then be implemented in a modular way, using aspects, annotations and specialization. Because these tools are high level, they match the needs of a DSL, facilitating the development of the DSL compiler, and making it modular and re-targetable. We illustrate our approach with a DSL for telephony services. The structure of the DSL compiler is presented, as well as practical uses of generative tools for some compilation facets.
Type de document :
Communication dans un congrès
International Conference on Generative Programming and Component Engineering (GPCE), 2005, Tallinn, Estonia. pp.29-46, 2005
Liste complète des métadonnées


https://hal.archives-ouvertes.fr/hal-00350045
Contributeur : Laurent Réveillère <>
Soumis le : lundi 5 janvier 2009 - 17:46:01
Dernière modification le : jeudi 10 septembre 2015 - 01:09:20
Document(s) archivé(s) le : mardi 8 juin 2010 - 18:33:12

Fichier

consel-algpce2005.pdf
Fichiers produits par l'(les) auteur(s)

Identifiants

  • HAL Id : hal-00350045, version 1

Collections

Citation

Charles Consel, Fabien Latry, Laurent Réveillère, Pierre Cointe. A Generative Programming Approach To Developing DSL Compilers. International Conference on Generative Programming and Component Engineering (GPCE), 2005, Tallinn, Estonia. pp.29-46, 2005. <hal-00350045>

Partager

Métriques

Consultations de
la notice

430

Téléchargements du document

329