skip to main content
10.1145/3276604.3276622acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections

Modular language composition for the masses

Published:24 October 2018Publication History

ABSTRACT

The goal of modular language development is to enable the definition of new languages as assemblies of pre-existing ones. Recent approaches in this area are plentiful but usually suffer from two main problems: either they do not support modular language composition both at the specification and implementation levels, or they require advanced knowledge of specific paradigms which hampers wide adoption in the industry. In this paper, we introduce a non-intrusive approach to modular development of language concerns with well-defined interfaces that can be composed modularly at the specification and implementation levels. We present an implementation of our approach atop the Eclipse Modeling Framework, namely Alex, an object-oriented meta-language for semantics definition and language composition. We evaluate Alex in the development of a new DSL for IoT systems modeling resulting from the composition of three independently defined languages (UML activity diagrams, Lua, and the OMG Interface Description Language). We evaluate the effort required to implement and compose these languages using Alex with regards to similar approaches of the literature.

References

  1. Bas Basten, Jeroen van den Bos, Mark Hills, Paul Klint, Arnold Lankamp, Bert Lisser, Atze van der Ploeg, Tijs van der Storm, and Jurgen J. Vinju. 2015. Modular language implementation in Rascal - experience report. Sci. Comput. Program. 114 (2015), 7–19. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Walter Cazzola and Edoardo Vacchi. 2013. Neverlang 2 - Componentised Language Development for the JVM. In Software Composition - 12th International Conference, SC 2013, Budapest, Hungary, June 19, 2013. Proceedings (Lecture Notes in Computer Science), Walter Binder, Eric Bodden, and Welf Löwe (Eds.), Vol. 8088. Springer, 17–32.Google ScholarGoogle Scholar
  3. María Victoria Cengarle, Hans Grönniger, and Bernhard Rumpe. 2009. Variability within Modeling Language Definitions. In Model Driven Engineering Languages and Systems, 12th International Conference, MOD-ELS 2009, Denver, CO, USA, October 4-9, 2009. Proceedings (Lecture Notes in Computer Science), Andy Schürr and Bran Selic (Eds.), Vol. 5795. Springer, 670–684. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Martin Churchill, Peter D. Mosses, Neil Sculthorpe, and Paolo Torrini. 2015. Reusable Components of Semantic Specifications. Trans. AspectOriented Software Development 12 (2015), 132–179.Google ScholarGoogle Scholar
  5. Tony Clark. 1999. Type Checking UML Static Diagrams. In «UML»’99: The Unified Modeling Language - Beyond the Standard, Second International Conference, Fort Collins, CO, USA, October 28-30, 1999, Proceedings (Lecture Notes in Computer Science), Robert B. France and Bernhard Rumpe (Eds.), Vol. 1723. Springer, 503–517.Google ScholarGoogle Scholar
  6. Curtis Clifton, Gary T. Leavens, Craig Chambers, and Todd D. Millstein. 2000. MultiJava: modular open classes and symmetric multiple dispatch for Java. In Proceedings of the 2000 ACM SIGPLAN Conference on ObjectOriented Programming Systems, Languages & Applications (OOPSLA 2000), Minneapolis, Minnesota, USA, October 15-19, 2000., Mary Beth Rosson and Doug Lea (Eds.). ACM, 130–145. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Benoit Combemale, Jörg Kienzle, Gunter Mussbacher, Olivier Barais, Erwan Bousse, Walter Cazzola, Philippe Collet, Thomas Degueule, Robert Heinrich, Jean-Marc Jézéquel, Manuel Leduc, Tanja Mayerhofer, Sébastien Mosser, Matthias Schöttle, Misha Strittmatter, and Andreas Wortmann. 2018. Concern-Oriented Language Development (COLD): Fostering Reuse in Language Engineering. Computer Languages, Systems and Structures (2018), 1–26.Google ScholarGoogle Scholar
  8. Bruno C. d. S. Oliveira and William R. Cook. 2012. Extensibility for the Masses - Practical Extensibility with Object Algebras. In ECOOP 2012 - Object-Oriented Programming - 26th European Conference, Beijing, China, June 11-16, 2012. Proceedings (Lecture Notes in Computer Science), James Noble (Ed.), Vol. 7313. Springer, 2–27. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Thomas Degueule, Benoît Combemale, Arnaud Blouin, Olivier Barais, and Jean-Marc Jézéquel. 2015. Melange: a meta-language for modular and reusable development of DSLs. In Proceedings of the 2015 ACM SIGPLAN International Conference on Software Language Engineering, SLE 2015, Pittsburgh, PA, USA, October 25-27, 2015, Richard F. Paige, Davide Di Ruscio, and Markus Völter (Eds.). ACM, 25–36. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Thomas Degueule, Benoît Combemale, and Jean-Marc Jézéquel. 2017. On Language Interfaces. In Present and Ulterior Software Engineering., Manuel Mazzara and Bertrand Meyer (Eds.). Springer, 65–75.Google ScholarGoogle Scholar
  11. Sven Efftinge, Moritz Eysholdt, Jan Köhnlein, Sebastian Zarnekow, Robert von Massow, Wilhelm Hasselbring, and Michael Hanus. 2012. Xbase: implementing domain-specific languages for Java. In Generative Programming and Component Engineering, GPCE’12, Dresden, Germany, September 26-28, 2012, Klaus Ostermann and Walter Binder (Eds.). ACM, 112–121. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Jean-Marie Favre, Dragan Gasevic, Ralf Lämmel, and Ekaterina Pek. 2010. Empirical Language Analysis in Software Linguistics. In Software Language Engineering - Third International Conference, SLE 2010, Eindhoven, The Netherlands, October 12-13, 2010, Revised Selected Papers (Lecture Notes in Computer Science), Brian A. Malloy, Steffen Staab, and Mark van den Brand (Eds.), Vol. 6563. Springer, 316–326. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Erich Gamma. 1995. Design patterns: elements of reusable object-oriented software. Pearson Education India. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Pablo Inostroza and Tijs van der Storm. 2017. Modular interpreters with implicit context propagation. Computer Languages, Systems & Structures 48 (2017), 39–67.Google ScholarGoogle Scholar
  15. Jean-Marc Jézéquel, Benoît Combemale, Olivier Barais, Martin Monperrus, and François Fouquet. 2015. Mashup of metalanguages and its implementation in the Kermeta language workbench. Software and System Modeling 14, 2 (2015), 905–920. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Lennart C. L. Kats and Eelco Visser. 2010. The spoofax language workbench: rules for declarative specification of languages and IDEs. In Proceedings of the 25th Annual ACM SIGPLAN Conference on ObjectOriented Programming, Systems, Languages, and Applications, OOPSLA 2010, October 17-21, 2010, Reno/Tahoe, Nevada, USA, William R. Cook, Siobhán Clarke, and Martin C. Rinard (Eds.). ACM, 444–463. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Holger Krahn, Bernhard Rumpe, and Steven Völkel. 2014. MontiCore: Modular Development of Textual Domain Specific Languages. CoRR abs/1409.6633 (2014). arXiv: 1409.6633 http://arxiv.org/abs/1409.6633Google ScholarGoogle Scholar
  18. Thomas Kühn, Walter Cazzola, and Diego Mathias Olivares. 2015. Choosy and picky: configuration of language product lines. In Proceedings of the 19th International Conference on Software Product Line, SPLC 2015, Nashville, TN, USA, July 20-24, 2015, Douglas C. Schmidt (Ed.). ACM, 71–80. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Manuel Leduc, Thomas Degueule, Benoît Combemale, Tijs van der Storm, and Olivier Barais. 2017. Revisiting Visitors for Modular Extension of Executable DSMLs. In 20th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, MODELS 2017, Austin, TX, USA, September 17-22, 2017. IEEE Computer Society, 112– 122.Google ScholarGoogle Scholar
  20. Jörg Liebig, Rolf Daniel, and Sven Apel. 2013. Feature-oriented language families: a case study. In The Seventh International Workshop on Variability Modelling of Software-intensive Systems, VaMoS ’13, Pisa , Italy, January 23 - 25, 2013, Stefania Gnesi, Philippe Collet, and Klaus Schmid (Eds.). ACM, 11:1–11:8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. David Méndez-Acuña, José A. Galindo, Thomas Degueule, Benoît Combemale, and Benoit Baudry. 2016. Leveraging Software Product Lines Engineering in the development of external DSLs: A systematic literature review. Computer Languages, Systems & Structures 46 (2016), 206–235. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Marjan Mernik. 2013. An object-oriented approach to language compositions for software language engineering. Journal of Systems and Software 86, 9 (2013), 2451–2464. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Pierre-Alain Muller, Franck Fleurey, and Jean-Marc Jézéquel. 2005. Weaving Executability into Object-Oriented Meta-languages. In Model Driven Engineering Languages and Systems, 8th International Conference, MoDELS 2005, Montego Bay, Jamaica, October 2-7, 2005, Proceedings (Lecture Notes in Computer Science), Lionel C. Briand and Clay Williams (Eds.), Vol. 3713. Springer, 264–278. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. OMG. 2006. Meta Object Facility (MOF) 2.0 Core Specification. http: //www.omg.org/spec/MOF/2.0/ .Google ScholarGoogle Scholar
  25. Ana Pescador, Antonio Garmendia, Esther Guerra, Jesús Sánchez Cuadrado, and Juan de Lara. 2015. Pattern-based development of Domain-Specific Modelling Languages. In 18th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, MoD-ELS 2015, Ottawa, ON, Canada, September 30 - October 2, 2015, Timothy Lethbridge, Jordi Cabot, and Alexander Egyed (Eds.). IEEE Computer Society, 166–175.Google ScholarGoogle ScholarCross RefCross Ref
  26. Dave Steinberg, Frank Budinsky, Ed Merks, and Marcelo Paternostro. 2008. EMF: Eclipse Modeling Framework. Pearson Education. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Edoardo Vacchi and Walter Cazzola. 2015. Neverlang: A framework for feature-oriented language development. Computer Languages, Systems & Structures 43 (2015), 1–40. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Markus Voelter. 2011. Language and IDE Modularization and Composition with MPS. In Generative and Transformational Techniques in Software Engineering IV, International Summer School, GTTSE 2011, Braga, Portugal, July 3-9, 2011. Revised Papers (Lecture Notes in Computer Science), Ralf Lämmel, João Saraiva, and Joost Visser (Eds.), Vol. 7680. Springer, 383–430.Google ScholarGoogle Scholar
  29. Weixin Zhang and Bruno C. d. S. Oliveira. 2017. EVF: An Extensible and Expressive Visitor Framework for Programming Language Reuse. In 31st European Conference on Object-Oriented Programming, ECOOP 2017, June 19-23, 2017, Barcelona, Spain (LIPIcs), Peter Müller (Ed.), Vol. 74. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 29:1– 29:32.Google ScholarGoogle Scholar

Index Terms

  1. Modular language composition for the masses

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader