A Module System for Domain-Specific Languages

被引:0
|
作者
Jackson, Ethan K. [1 ]
机构
[1] Microsoft Res, Res Software Engn RiSE, Redmond, WA 98052 USA
关键词
module systems; domain-specific languages; logic programming; VERIFICATION;
D O I
10.1017/S1471068414000337
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Domain-specific languages (DSLs) are routinely created to simplify difficult or specialized programming tasks. They expose useful abstractions and design patterns in the form of language constructs, provide static semantics to eagerly detect misuse of these constructs, and dynamic semantics to completely define how language constructs interact. However, implementing and composing DSLs is a non-trivial task, and there is a lack of tools and techniques. We address this problem by presenting a complete module system over LP for DSL construction, reuse, and composition. LP is already useful for DSL design, because it supports executable language specifications using notations familiar to language designers. We extend LP with a module system that is simple (with a few concepts), succinct (for key DSL specification scenarios), and composable (on the level of languages, compilers, and programs). These design choices reflect our use of LP for industrial DSL design. Our module system has been implemented in the formula language, and was used to build key Windows 8 device drivers via DSLs. Though we present our module system as it actually appears in our formula language, our emphasis is on concepts adaptable to other LP languages.
引用
收藏
页码:771 / 785
页数:15
相关论文
共 50 条
  • [1] Domain-Specific Languages in a Customs Information System
    Freudenthal, Margus
    [J]. IEEE SOFTWARE, 2010, 27 (02) : 65 - 71
  • [2] Domain-specific model differencing for graphical domain-specific languages
    Jafarlou, Manouchehr Zadahmad
    [J]. ACM/IEEE 25TH INTERNATIONAL CONFERENCE ON MODEL DRIVEN ENGINEERING LANGUAGES AND SYSTEMS, MODELS 2022 COMPANION, 2022, : 205 - 208
  • [3] On domain-specific languages reengineering
    Alias, C
    Barthou, D
    [J]. GENERATIVE PROGRAMMING AND COMPONENT ENGINEERING, PROCEEDINGS, 2005, 3676 : 63 - 77
  • [4] Unembedding Domain-Specific Languages
    Atkey, Robert
    Lindley, Sam
    Yallop, Jeremy
    [J]. HASKELL'09: PROCEEDINGS OF THE 2009 ACM SIGPLAN HASKELL SYMPOSIUM, 2009, : 37 - 48
  • [5] On the Globalization of Domain-Specific Languages
    Cheng, Betty H. C.
    Combemale, Benoit
    France, Robert B.
    Jezequel, Jean-Marc
    Rumpe, Bernhard
    [J]. GLOBALIZING DOMAIN-SPECIFIC LANGUAGES, 2015, 9400 : 1 - 6
  • [6] Macros for Domain-Specific Languages
    Ballantyne, Michael
    King, Alexis
    Felleisen, Matthias
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2020, 4
  • [7] DSMCompare: domain-specific model differencing for graphical domain-specific languages
    Manouchehr Zadahmad
    Eugene Syriani
    Omar Alam
    Esther Guerra
    Juan de Lara
    [J]. Software and Systems Modeling, 2022, 21 : 2067 - 2096
  • [8] DSMCompare: domain-specific model differencing for graphical domain-specific languages
    Zadahmad, Manouchehr
    Syriani, Eugene
    Alam, Omar
    Guerra, Esther
    de Lara, Juan
    [J]. SOFTWARE AND SYSTEMS MODELING, 2022, 21 (05): : 2067 - 2096
  • [9] Untangling Crosscutting Concerns in Domain-specific Languages with Domain-specific Join Points
    Dinkelaker, Tom
    Monperrus, Martin
    Mezini, Mira
    [J]. DSAL09: DOMAIN-SPECIFIC ASPECT LANGUAGES, 2009, : 1 - 5
  • [10] ViSlang: A System for Interpreted Domain-Specific Languages for Scientific Visualization
    Rautek, Peter
    Bruckner, Stefan
    Groeller, M. Eduard
    Hadwiger, Markus
    [J]. IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, 2014, 20 (12) : 2388 - 2396