Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2371401.2371419acmconferencesArticle/Chapter ViewAbstractPublication PagesgpceConference Proceedingsconference-collections
research-article

Xbase: implementing domain-specific languages for Java

Published: 26 September 2012 Publication History

Abstract

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 general-purpose 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.

References

[1]
Hassan Chafi, Zach DeVito, Adriaan Moors, Tiark Rompf, Arvind Sujeeth, Pat Hanrahan, Martin Odersky, and Kunle Olukotun. Language Virtualization for Heterogeneous Parallel Computing. Technical report, EPFL, 2010.
[2]
E. F. Codd. A relational model of data for large shared data banks. Commun. ACM, 13: 377--387, June 1970.
[3]
Sven Efftinge, Moritz Eysholdt, Jan Köhnlein, Sebastian Zarnekow, and Contributors. Xtext 2.2 Documentation, December 2011.
[4]
Sven Efftinge, Sören Frey, Wilhelm Hasselbring, and Jan Köhnlein. Einsatz domänenspezifischer Sprachen zur Migration von Datenbankanwendungen. In Datenbanksysteme für Business, Technologie und Web (BTW 2011), volume P-180 of Lecture Notes in Informatics, pages 554--573, Kaiserslautern, March 2011.
[5]
Eugene Burmako, Martin Odersky, Christopher Vogt, Stefan Zeiger, Adriaan Moors. Self Cleaning Macros (SIP 16), March 2012.
[6]
M. Eysholdt and J. Rupprecht. Migrating a large modeling environment from XML/UML to Xtext/GMF. In Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, pages 97--104. ACM, 2010.
[7]
Martin Fowler. Domain Specific Languages. Addison-Wesley Professional, 1st edition, 2010.
[8]
Debasish Ghosh. DSLs in Action. Manning Publications, pap/psc edition, December 2010.
[9]
Wolfgang Goerigk, Reinhard von Hanxleden, Wilhelm Hasselbring, Gregor Hennings, Reiner Jung, Holger Neustock, Heiko Schaefer, Christian Schneider, Elferik Schultz, Thomas Stahl, Steffen Weik, and Stefan Zeug. Entwurf einer domänenspezifischen Sprache für elektronische Stellwerke. In Software Engineering 2012, volume P-198 of Lecture Notes in Informatics (LNI), pages 119--130. GI, March 2012.
[10]
Peter Henderson. Functional geometry. In Symposium on LISP and Functional Programming, pages 179--187, 1982.
[11]
P. Hudak. Describing and interpreting music in Haskell. In J. Gibbons and O. de Moor, editors, The Fun of Programming, pages 61--78. Palgrave Macmillan, 2003.
[12]
J. Hughes. Why functional programming matters. In D. A. Turner, editor, Research Topics in Functional Programming, pages 17--42. Addison Wesley, 1990.
[13]
Java Community Process. Lambda Specification (Early Draft Review #1), November 2011.
[14]
Lennart C. L. Kats and Eelco Visser. The Spoofax language workbench. Rules for declarative specification of languages and IDEs. In Martin Rinard, editor, Proceedings of the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 444--463, October 2010.
[15]
Olaf Kindel and Mario Friedrich. Softwareentwicklung mit AUTOSAR. dpunkt.verlag, 2009.
[16]
Dierk Koenig, Andrew Glover, Paul King, Guillaume Laforge, and Jon Skeet. Groovy in Action. Manning Publications Co., 2007.
[17]
Holger Krahn, Bernhard Rumpe, and Steven Völkel. MontiCore: a Framework for Compositional Development of Domain Specific Languages. International Journal on Software Tools for Technology Transfer (STTT), 12: 353--372, September 2010.
[18]
S. L. Peyton Jones and J.-M. Eber. How to write a financial contract. In J. Gibbons and O. de Moor, editors, The Fun of Programming, pages 105--129. Palgrave Macmillan, 2003.
[19]
Dhanji R. Prasanna. Dependency Injection. Manning Publications Co., 2009.
[20]
Markus Voelter and Konstantin Solomatov. Language modularization and composition with projectional language workbenches illustrated with MPS. In Mark van den Brand, Brian Malloy, and Steffen Staab, editors, Software Language Engineering, Third International Conference, SLE 2010, Lecture Notes in Computer Science. Springer, 2010.
[21]
P. Wadler. A prettier printer. In J. Gibbons and O. de Moor, editors, The Fun of Programming, pages 223--243. Palgrave Macmillan, 2003.
[22]
Niklaus Wirth. What can we do about the unnecessary diversity of notation for syntactic definitions? Commun. ACM, 20: 822--823, November 1977.

Cited By

View all
  • (2024)Interactivity and Collaboration in the Context of Heterogeneous ModelingProceedings of the ACM/IEEE 27th International Conference on Model Driven Engineering Languages and Systems10.1145/3652620.3688205(174-179)Online publication date: 22-Sep-2024
  • (2024)An Expression Language for Model TransformationsModel-Driven Engineering and Software Development10.1007/978-3-031-66339-0_6(115-136)Online publication date: 6-Sep-2024
  • (2023)Coordinating and programming multiple ROS-based robots with X-KLAIMInternational Journal on Software Tools for Technology Transfer (STTT)10.1007/s10009-023-00727-w25:5-6(747-764)Online publication date: 1-Dec-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
GPCE '12: Proceedings of the 11th International Conference on Generative Programming and Component Engineering
September 2012
148 pages
ISBN:9781450311298
DOI:10.1145/2371401
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 48, Issue 3
    GPCE '12
    March 2013
    140 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2480361
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 September 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. domain-specific languages
  2. language inheritance
  3. object-oriented programming

Qualifiers

  • Research-article

Funding Sources

Conference

GPCE'12
Sponsor:
GPCE'12: Generative Programming and Component Engineering
September 26 - 27, 2012
Dresden, Germany

Acceptance Rates

Overall Acceptance Rate 56 of 180 submissions, 31%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)20
  • Downloads (Last 6 weeks)5
Reflects downloads up to 14 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Interactivity and Collaboration in the Context of Heterogeneous ModelingProceedings of the ACM/IEEE 27th International Conference on Model Driven Engineering Languages and Systems10.1145/3652620.3688205(174-179)Online publication date: 22-Sep-2024
  • (2024)An Expression Language for Model TransformationsModel-Driven Engineering and Software Development10.1007/978-3-031-66339-0_6(115-136)Online publication date: 6-Sep-2024
  • (2023)Coordinating and programming multiple ROS-based robots with X-KLAIMInternational Journal on Software Tools for Technology Transfer (STTT)10.1007/s10009-023-00727-w25:5-6(747-764)Online publication date: 1-Dec-2023
  • (2020)Edelta 2.0Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings10.1145/3417990.3419501(1-10)Online publication date: 16-Oct-2020
  • (2020)SMRLProceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Companion Proceedings10.1145/3377812.3382152(9-12)Online publication date: 27-Jun-2020
  • (2019)Compiler generation for performance-oriented embedded DSLs (short paper)Proceedings of the 18th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3357765.3359520(94-101)Online publication date: 21-Oct-2019
  • (2019)Quality-Driven Detection and Resolution of Metamodel SmellsIEEE Access10.1109/ACCESS.2019.28913577(16364-16376)Online publication date: 2019
  • (2018)Modular language composition for the massesProceedings of the 11th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3276604.3276622(47-59)Online publication date: 24-Oct-2018
  • (2018)Deriving fluent internal domain-specific languages from grammarsProceedings of the 11th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3276604.3276621(187-199)Online publication date: 24-Oct-2018
  • (2018)CheerOnACM Transactions on Computer-Human Interaction10.1145/324104325:6(1-46)Online publication date: 20-Dec-2018
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media