Xbase: Implementing Domain-Specific Languages for Java']Java

被引:44
|
作者
Efftinge, Sven [1 ]
Eysholdt, Moritz [1 ]
Koehnlein, Jan [1 ]
Zarnekow, Sebastian [1 ]
Hasselbring, Wilhelm [2 ]
von Massow, Robert [2 ]
Hanus, Michael [3 ]
机构
[1] itemis AG, D-24143 Kiel, Germany
[2] Univ Kiel, Software Engn Grp, Kiel, Germany
[3] Univ Kiel, Programming Languages & Compiler Construct Grp, Kiel, Germany
关键词
Design; Languages; Domain-specific languages; Object-oriented programming; Language inheritance;
D O I
10.1145/2480361.2371419
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Xtext is an open-source framework for implementing external, textual domain-specific languages (DSLs). So far, most DSLs implemented with Xtext and similar tools focus on structural aspects such as service specifications and entities. Because behavioral aspects are significantly more complicated to implement, they are often delegated to generalpurpose programming languages. This approach introduces complex integration patterns and the DSL's high level of abstraction is compromised. We present Xbase as part of Xtext, an expression language that can be reused via language inheritance in any DSL implementation based on Xtext. Xbase expressions provide both control structures and program expressions in a uniform way. Xbase is statically typed and tightly integrated with the Java type system. Languages extending Xbase inherit the syntax of a Java-like expression language as well as language infrastructure components, including a parser, an unparser, a linker, a compiler and an interpreter. Furthermore, the framework provides integration into the Eclipse IDE including debug and refactoring support. The application of Xbase is presented by means of a domain model language which serves as a tutorial example and by the implementation of the programming language Xtend. Xtend is a functional and object-oriented general purpose language for the Java Virtual Machine (JVM). It is built on top of Xbase which is the reusable expression language that is the foundation of Xtend.
引用
收藏
页码:112 / 121
页数:10
相关论文
共 50 条
  • [31] Functional Programming for Domain-Specific Languages
    Gibbons, Jeremy
    [J]. CENTRAL EUROPEAN FUNCTIONAL PROGRAMMING SCHOOL, CEFP 2013, 2015, 8606 : 1 - 28
  • [32] Unit Testing for Domain-Specific Languages
    Wu, Hui
    Gray, Jeff
    Mernik, Marjan
    [J]. DOMAIN-SPECIFIC LANGUAGES, PROCEEDINGS, 2009, 5658 : 125 - +
  • [33] Writing Domain-Specific Languages for BeepBeep
    Halle, Sylvain
    Khoury, Raphael
    [J]. RUNTIME VERIFICATION (RV 2018), 2018, 11237 : 447 - 457
  • [34] Domain-Specific Languages for Enterprise Systems
    Andersen, Jesper
    Bahr, Patrick
    Henglein, Fritz
    Hvitved, Tom
    [J]. LEVERAGING APPLICATIONS OF FORMAL METHODS, VERIFICATION AND VALIDATION: TECHNOLOGIES FOR MASTERING CHANGE, PT I, 2014, 8802 : 73 - 95
  • [35] A Survey on Domain-Specific Languages in Robotics
    Nordmann, Arne
    Hochgeschwender, Nico
    Wrede, Sebastian
    [J]. SIMULATION, MODELING, AND PROGRAMMING FOR AUTONOMOUS ROBOTS (SIMPAR 2014), 2014, 8810 : 195 - 206
  • [36] A Module System for Domain-Specific Languages
    Jackson, Ethan K.
    [J]. THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2014, 14 : 771 - 785
  • [37] Software Evolution to Domain-Specific Languages
    Fehrenbach, Stefan
    Erdweg, Sebastian
    Ostermann, Klaus
    [J]. SOFTWARE LANGUAGE ENGINEERING (SLE 2013), 2013, 8225 : 96 - 116
  • [38] Domain-specific languages for ecological modelling
    Holst, Niels
    Belete, Getachew F.
    [J]. ECOLOGICAL INFORMATICS, 2015, 27 : 26 - 38
  • [39] Testing domain-specific languages in eclipse
    Wu, Hui
    Gray, Jeff
    [J]. Proc Conf Object Orient Program Syst Lang Appl OOPSLA, (173-174):
  • [40] Implementing an efficient Java']Java interpreter
    Gregg, D
    Ertl, MA
    Krall, A
    [J]. HIGH-PERFORMANCE COMPUTING AND NETWORKING, 2001, 2110 : 613 - 620