Interoperable domain-specific languages families for code generation

被引:0
|
作者
Malohlava, Michal [1 ]
Plasil, Frantisek [1 ,2 ]
Bures, Tomas [1 ,2 ]
Hnetynka, Petr [1 ]
机构
[1] Charles Univ Prague, Fac Math & Phys, Dept Distributed & Dependable Syst, CR-11800 Prague 1, Czech Republic
[2] Acad Sci Czech Republ, Inst Comp Sci, Prague 18207 8, Czech Republic
关键词
code generation; domain specific languages; models reuse; extensible languages; specification; program synthesis; MODEL;
D O I
10.1002/spe.2118
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This paper has been motivated by experience gained with specification and code generation of control elements for a software component platform and general-purpose programming language like Java and C. The problem to be addressed is two-fold: first, several domain-specific languages (DSL) are to be employed to express different element concerns (architecture, deployment context, code pattern) and second, porting to another general-purpose language should avoid modification of the specification and related code generation process as much as possible. In both respects, the classical template-based code generation technique proved to be inflexible, requiring the code generator to be blurred with ad hoc encoded DSL facets. The paper addresses the problem by introducing the concept of interoperable DSL family. Each member of the family is built around its core language, which can be further specialized by embedding into a target programming language. Interoperability of these DSLs is achieved at the level of abstract syntax trees (ASTs) with help of queries. As a proof of the concept, we have implemented the queries via the AST transformation rules of the Stratego/XT framework. In the evaluation, we provide a comparison with the original template-based implementation, which clearly indicates the DSL family and AST transformation benefits. We also provide examples of application areas where the concept of interoperable DSL family can be employed (and also indicate how this can be accomplished). Copyright (c) 2012 John Wiley & Sons, Ltd.
引用
收藏
页码:479 / 499
页数:21
相关论文
共 50 条
  • [31] Modernizing Domain-Specific Languages with XMLText and IntellEdit
    Neubauer, Patrick
    Bill, Robert
    Wimmer, Manuel
    2017 IEEE 24TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER), 2017, : 565 - 566
  • [32] Bringing Domain-Specific Languages to Digital Forensics
    van den Bos, Jeroen
    van der Storm, Tijs
    2011 33RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2011, : 671 - 680
  • [33] An approach for the systematic development of domain-specific languages
    Strembeck, Mark
    Zdun, Uwe
    SOFTWARE-PRACTICE & EXPERIENCE, 2009, 39 (15) : 1253 - 1292
  • [34] Notable design patterns for domain-specific languages
    Spinellis, D
    JOURNAL OF SYSTEMS AND SOFTWARE, 2001, 56 (01) : 91 - 99
  • [35] Effort Used to Create Domain-Specific Modeling Languages
    Tolvanen, Juha-Pekka
    Kelly, Steven
    21ST ACM/IEEE INTERNATIONAL CONFERENCE ON MODEL DRIVEN ENGINEERING LANGUAGES AND SYSTEMS (MODELS 2018), 2018, : 235 - 244
  • [36] Towards a Systematic Engineering of Industrial Domain-Specific Languages
    Gupta, Rohit
    Kranz, Sieglinde
    Regnat, Nikolaus
    Rumpe, Bernhard
    Wortmann, Andreas
    2021 IEEE/ACM 8TH INTERNATIONAL WORKSHOP ON SOFTWARE ENGINEERING RESEARCH AND INDUSTRIAL PRACTICE (SER&IP 2021), 2021, : 49 - 56
  • [37] A generator framework for domain-specific model transformation languages
    Reiter, T.
    Kapsammer, E.
    Retschitzegger, W.
    Schwinger, W.
    Stumptner, M.
    ICEIS 2006: PROCEEDINGS OF THE EIGHTH INTERNATIONAL CONFERENCE ON ENTERPRISE INFORMATION SYSTEMS: INFORMATION SYSTEMS ANALYSIS AND SPECIFICATION, 2006, : 27 - +
  • [38] Really Embedding Domain-Specific Languages into C plus
    Finkel, Hal
    McCaskey, Alexander
    Popoola, Tobi
    Lyakh, Dmitry
    Doerfert, Johannes
    PROCEEDINGS OF SIXTH WORKSHOP ON THE LLVM COMPILER INFRASTRUCTURE IN HPC AND WORKSHOP ON HIERARCHICAL PARALLELISM FOR EXASCALE COMPUTING (LLVM-HPC2020 AND HIPAR 2020), 2020, : 65 - 73
  • [39] Combining deep and shallow embedding of domain-specific languages
    Svenningsson, Josef
    Axelsson, Emil
    COMPUTER LANGUAGES SYSTEMS & STRUCTURES, 2015, 44 : 143 - 165
  • [40] IMPLEMENTING DOMAIN-SPECIFIC LANGUAGES FOR HETEROGENEOUS PARALLEL COMPUTING
    Lee, HyoukJoong
    Brown, Kevin J.
    Sujeeth, Arvind K.
    Chafi, Hassan
    Olukotun, Kunle
    Rompf, Tiark
    Odersky, Martin
    IEEE MICRO, 2011, 31 (05) : 42 - 52