Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3361149.3361179acmotherconferencesArticle/Chapter ViewAbstractPublication PageseuroplopConference Proceedingsconference-collections
research-article

Chain of builders: a pattern of variable syntax processing for internal DSLs

Published: 03 July 2019 Publication History

Abstract

chain of builders is a language-implementation pattern at the centre of realising variable textual syntaxes for internal domain-specific languages (DSL). An internal DSL is built on top of a general-purpose software language (GPL; Java) and uses the GPL infrastructure for processing and for enacting DSL scripts. A DSL is said to be variable when it allows for deriving a family of DSL variants (a.k.a. a language-product line), varying at the levels of abstract syntax, concrete syntax, semantics, and execution (e.g., interpretation or generation). chain of builders combines the chain of responsibility and expression builder patterns. With this, the paper adds to known pattern languages for DSL development (e.g., Fowler's). Its known use has been in development systems for internal DSLs such as DjDSL, but also applies to applications processing mixed syntaxes (XML and JSON).

References

[1]
Frank Buschmann and Kevlin Henney. 2003. Explicit Interface. In Proceedings of EuroPLoP 2003. Irsee, Germany.
[2]
Frank Buschmann, Kevlin Henney, and Douglas C. Schmidt. 2007. Pattern-oriented Software Architecture - On Patterns and Pattern Languages. John Wiley & Sons.
[3]
Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal (Eds.). 2000. Pattern-Oriented Software Architecture: A System of Patterns. John Wiley & Sons Ltd., Chichester, England.
[4]
Krzysztof Czarnecki and Ulrich W. Eisenecker. 2000. Generative Programming --- Methods, Tools, and Applications (6th ed.). Addison-Wesley.
[5]
Sebastian Erdweg, Paolo G. Giarrusso, and Tillmann Rendel. 2012. Language Composition Untangled. In Proc. Twelfth Workshop on Language Descriptions, Tools, and Applications (LDTA'12). ACM, 7:1--7:8.
[6]
Martin Fowler. 2010. Domain Specific Languages (1st ed.). Addison-Wesley.
[7]
Erich Gamma, Richard Helm, Ralph E. Johnson, and John Vlissides. 1995. Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley.
[8]
Debasish Ghosh. 2010. DSLs in Action (1st ed.). Manning Publications Co.
[9]
James Gosling, Bill Joy, Guy Steele, Gilad Bracha, and Alex Buckley. 2015. The Java® Language Specification. Available online; last accessed: 05.04.2019. https://docs.oracle.com/javase/specs/jls/se8/html/index.html
[10]
Bernhard Hoisl, Stefan Sobernig, and Mark Strembeck. 2017. Reusable and generic design decisions for developing UML-based domain-specific languages. Information and Software Technology 92 (July 2017), 49--74.
[11]
Tomaž Kosar, Sudev Bohra, and Marjan Mernik. 2016. Domain-Specific Languages: A Systematic Mapping Study. Information and Software Technology 71 (2016), 77--91.
[12]
R. Lämmel and E. Meijer. 2007. Revealing the X/O impedance mismatch (Changing lead into gold). In Datatype-Generic Programming (Lecture Notes in Computer Science), Roland Backhouse, Jeremy Gibbons, Ralf Hinze, and Johan Jeuring (Eds.). Springer.
[13]
Marjan Mernik, Jan Heering, and Anthony M. Sloane. 2005. When and how to develop domain-specific languages. Comput. Surveys 37, 4 (2005), 316--344.
[14]
Terence Parr. 2009. Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages (1st ed.). Pragmatic Bookshelf.
[15]
Dirk Riehle, Michel Tilman, and Ralph Johnson. 2005. Dynamic Object Model. In Pattern Languages of Program Design 5. Addison-Wesley, 3--24.
[16]
Douglas C. Schmidt, Michael Stal, Hans Rohnert, and Frank Buschmann. 2000. Pattern-Oriented Software Architecture. John Wiley & Sons Ltd. Wiley, Chichester, England, Chapter Whole-Part, 225--242.
[17]
Marco Servetto, Julian Mackay, Alex Potanin, and James Noble. 2013. The Billion-Dollar Fix. In Proc. 27th Europ. Conference Object-Oriented Programming (ECOOP'13) (LNCS), Vol. 7920. Springer, 205--229.
[18]
Stefan Sobernig. 2018. DjDSL. Available at: https://github.com/mrcalvin/djdsl/.
[19]
Uta Störl, Thomas Hauf, Meike Klettke, and Stefanie Scherzinger. 2015. Schemaless NoSQL data stores - object-nosql mappers to the rescue?. In Datenbanksysteme für Business, Technologie und Web (BTW'15). Gesellschaft für Informatik e.V., 579--599.
[20]
Markus Völter. 2018. The Design, Evolution, and Use of Kernel F. In Proc. 11th International Conference on Model Transformation (ICMT'18) (LNCS), Vol. 10888. Springer, 3--55.
[21]
Markus Völter, Sebastian Benz, Christian Dietrich, Birgit Engelmann, Mats Helander, Lennart C. L. Kats, Eelco Visser, and Guido Wachsmuth. 2013. DSL Engineering: Designing, Implementing and Using Domain-Specific Languages. dsl-book.org. http://www.dslbook.org
[22]
Uwe Zdun. 2006. Patterns of Component and Language Integration. In Pattern Languages of Program Design 5, D. Manolescu, M. Völter, and J. Noble (Eds.). Addison-Wesley, Chapter 14, 357--400.
[23]
Uwe Zdun. 2010. A DSL toolkit for deferring architectural decisions in DSL-based software design. Information and Software Technology 52, 7 (2010), 733--748.
[24]
Uwe Zdun, Mark Strembeck, and Gustaf Neumann. 2007. Object-based and class-based composition of transitive mixins. Information and Software Technology 49, 8 (2007), 871--891.

Cited By

View all
  • (2022)A DSL and model transformations to specify learning corpora for modeling assistantsProceedings of the 25th International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings10.1145/3550356.3556502(95-102)Online publication date: 23-Oct-2022
  • (2020)Variable Textual SyntaxesVariable Domain-specific Software Languages with DjDSL10.1007/978-3-030-42152-6_5(167-260)Online publication date: 10-Jul-2020

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
EuroPLop '19: Proceedings of the 24th European Conference on Pattern Languages of Programs
July 2019
431 pages
ISBN:9781450362061
DOI:10.1145/3361149
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 the author(s) 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].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 03 July 2019

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Java
  2. concrete syntax
  3. domain-specific language
  4. internal DSL
  5. language family
  6. language-product line
  7. variability

Qualifiers

  • Research-article

Funding Sources

  • Austrian research funding association (FFG)

Conference

EuroPLoP '19

Acceptance Rates

Overall Acceptance Rate 216 of 354 submissions, 61%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)2
Reflects downloads up to 03 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2022)A DSL and model transformations to specify learning corpora for modeling assistantsProceedings of the 25th International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings10.1145/3550356.3556502(95-102)Online publication date: 23-Oct-2022
  • (2020)Variable Textual SyntaxesVariable Domain-specific Software Languages with DjDSL10.1007/978-3-030-42152-6_5(167-260)Online publication date: 10-Jul-2020

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