When and how to develop domain-specific languages

被引:877
|
作者
Mernik, M
Heering, J
Sloane, AM
机构
[1] Univ Maribor, Fac Elect Engn & Comp Sci, SLO-2000 Maribor, Slovenia
[2] CWI, Dept Software Engn, NL-1098 SJ Amsterdam, Netherlands
[3] Macquarie Univ, Dept Comp, Sydney, NSW 2109, Australia
关键词
design; languages; performance; domain-specific language; application language; domain analysis; language development system;
D O I
10.1145/1118890.1118892
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Domain-specific languages (DSLs) are languages tailored to a specific application domain. They offer substantial gains in expressiveness and ease of use compared with general-purpose programming languages in their domain of application. DSL development is hard, requiring both domain knowledge and language development expertise. Few people have both. Not surprisingly, the decision to develop a DSL is often postponed indefinitely, if considered at all, and most DSLs never get beyond the application library stage. Although many articles have been written on the development of particular DSLs, there is very limited literature on DSL development methodologies and many questions remain regarding when and how to develop a DSL. To aid the DSL developer, we identify patterns in the decision, analysis, design, and implementation phases of DSL development. Our patterns improve and extend earlier work on DSL design patterns. We also discuss domain analysis tools and language development systems that may help to speed up DSL development. Finally, we present a number of open problems.
引用
收藏
页码:316 / 344
页数:29
相关论文
共 50 条
  • [21] Challenges and Opportunities of Modularizing Textual Domain-Specific Languages
    Rieger, Christoph
    Westerkamp, Martin
    Kuchen, Herbert
    PROCEEDINGS OF THE 6TH INTERNATIONAL CONFERENCE ON MODEL-DRIVEN ENGINEERING AND SOFTWARE DEVELOPMENT, 2018, : 387 - 395
  • [22] Applying Domain-Specific Languages in Evolving Product Lines
    Tolvanen, Juha-Pekka
    Kelly, Steven
    23RD INTERNATIONAL SYSTEMS AND SOFTWARE PRODUCT LINE CONFERENCE(SPLC 2019), VOL B, 2019, : 40 - 41
  • [23] Delite: A Compiler Architecture for Performance-Oriented Embedded Domain-Specific Languages
    Sujeeth, Arvind K.
    Brown, Kevin J.
    Lee, Hyoukjoong
    Rompf, Tiark
    Chafi, Hassan
    Odersky, Martin
    Olukotun, Kunle
    ACM TRANSACTIONS ON EMBEDDED COMPUTING SYSTEMS, 2014, 13
  • [24] TextX: A Python']Python tool for Domain-Specific Languages implementation
    Dejanovic, I.
    Vaderna, R.
    Milosavljevic, G.
    Vukovic, Z.
    KNOWLEDGE-BASED SYSTEMS, 2017, 115 : 1 - 4
  • [25] Defining domain-specific languages using polymorphic and orthogonal mechanisms
    Liu, Y
    Zhang, NX
    8TH WORLD MULTI-CONFERENCE ON SYSTEMICS, CYBERNETICS AND INFORMATICS, VOL V, PROCEEDINGS: COMPUTER SCIENCE AND ENGINEERING, 2004, : 191 - 196
  • [26] ViSlang: A System for Interpreted Domain-Specific Languages for Scientific Visualization
    Rautek, Peter
    Bruckner, Stefan
    Groeller, M. Eduard
    Hadwiger, Markus
    IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, 2014, 20 (12) : 2388 - 2396
  • [27] Creating Domain-Specific Modelling Languages That Work: Hands-On
    Tolvanen, Juha-Pekka
    MODELLING FOUNDATIONS AND APPLICATIONS, 2011, 6698 : 393 - 394
  • [28] Domain-Specific Programming Languages for Computational Nucleic Acid Systems
    Lakin, Matthew R.
    Phillips, Andrew
    ACS SYNTHETIC BIOLOGY, 2020, 9 (07): : 1499 - 1513
  • [29] Domain-Specific Languages and Model Transformations for Software Product Line
    Troya, Javier
    Tolvanen, Juha-Pekka
    Segura, Sergio
    21ST INTERNATIONAL SYSTEMS & SOFTWARE PRODUCT LINE CONFERENCE (SPLC 2017), VOL 1, 2017, : 254 - 254
  • [30] Everything Old Is New Again: Quoted Domain-Specific Languages
    Najd, Shayan
    Lindley, Sam
    Svenningsson, Josef
    Wadler, Philip
    PEPM'16: PROCEEDINGS OF THE 2016 ACM SIGPLAN WORKSHOP ON PARTIAL EVALUATION AND PROGRAM MANIPULATION, 2016, : 25 - 36