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

Metamorphic Domain-Specific Languages: A Journey into the Shapes of a Language

Published: 14 October 2014 Publication History
  • Get Citation Alerts
  • Abstract

    External or internal domain-specific languages (DSLs) or (fluent) APIs' Whoever you are - a developer or a user of a DSL - you usually have to choose side; you should not! What about metamorphic DSLs that change their shape according to your needs? Our 4-years journey of providing the "right" support (in the domain of feature modeling), led us to develop an external DSL, different shapes of an internal API, and maintain all these languages. A key insight is that there is no one-size-fits-all solution or no clear superiority of a solution compared to another. On the contrary, we found that it does make sense to continue the maintenance of an external and internal DSL. Based on our experience and on an analysis of the DSL engineering field, the vision that we foresee for the future of software languages is their ability to be self-adaptable to the most appropriate shape (including the corresponding integrated development environment) according to a particular usage or task. We call metamorphic DSL such a language, able to change from one shape to another shape.

    References

    [1]
    Marjan Mernik, Jan Heering, and Anthony M. Sloane. When and how to develop domain-specific languages. ACM Comput. Surv., 37(4):316--344, 2005.
    [2]
    Martin Fowler. Domain Specific Languages. Addison-Wesley Professional, 2010.
    [3]
    Markus Voelter, Sebastian Benz, Christian Dietrich, Birgit Engelmann, Mats Helander, Lennart C. L. Kats, Eelco Visser, and Guido Wachsmuth. DSL Engineering - Designing, Implementing and Using Domain-Specific Languages. dslbook.org, 2013.
    [4]
    Andreas Stefik and Susanna Siebert. An Empirical Investigation into Programming Language Syntax. Trans. Comput. Educ., 13(4):19:1--19:40, November 2013.
    [5]
    Steven Kelly and Risto Pohjonen. Worst Practices for Domain-Specific Modeling. IEEE Software, 26(4):22--29, 2009.
    [6]
    Markus Voelter, Daniel Ratiu, Bernd Kolb, and Bernhard Schätz. mbeddr: instantiating a language workbench in the embedded software domain. Autom. Softw. Eng., 20(3):339--390, 2013.
    [7]
    Laurence Tratt. Domain Specific Language Implementation via Compile-time Meta-programming. ACM Trans. Program. Lang. Syst., 30(6):31:1--31:40, October 2008.
    [8]
    Sebastian Erdweg, Tijs van der Storm, Markus Völter, Meinte Boersma, Remi Bosman, William R. Cook, Albert Gerritsen, Angelo Hulshout, Steven Kelly, Alex Loh, Gabriël D. P. Konat, Pedro J. Molina, Martin Palatnik, Risto Pohjonen, Eugen Schindler, Klemens Schindler, Riccardo Solmi, Vlad A. Vergu, Eelco Visser, Kevin van der Vlist, GuidoWachsmuth, and Jimi van derWoning. The State of the Art in Language Workbenches - Conclusions from the Language Workbench Challenge. In SLE, volume 8225 of Lecture Notes in Computer Science, pages 197--217. Springer, 2013.
    [9]
    Steven Kelly, Kalle Lyytinen, Matti Rossi, and Juha-Pekka Tolvanen. MetaEdit+ at the Age of 20. In Seminal Contributions to Information Systems Engineering, pages 131--137. Springer, 2013.
    [10]
    Dean Wampler. Polyglot programming http://www.polyglotprogramming.com/.
    [11]
    Bertrand Meyer. Multi-language programming: how .NET does it. Software Development (3-part article Part 1: Polyglot Programming; Part 2: Respecting other object models; Part 3: Interoperability: at what cost, and with whom?), May, June and July 2002.
    [12]
    Martin Fowler. One language http://martinfowler.com/bliki/OneLanguage.html, 2007.
    [13]
    Leo A. Meyerovich and Ariel S. Rabkin. Socio-PLT: Principles for Programming Language Adoption. In Proceedings of the ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Onward! '12, pages 39--54. ACM, 2012.
    [14]
    Leo A Meyerovich and Ariel S Rabkin. Empirical analysis of programming language adoption. In Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications, pages 1--18. ACM, 2013.
    [15]
    Mathieu Acher, Philippe Collet, Philippe Lahire, and Robert B. France. Familiar: A domain-specific language for large scale management of feature models. Science of Computer Programming (SCP), 78(6):657--681, 2013.
    [16]
    Sebastian Erdweg, Tillmann Rendel, Christian Kästner, and Klaus Ostermann. Sugarj: Library-based syntactic language extensibility. In Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA '11, pages 391--406. ACM, 2011.
    [17]
    Felienne Hermans, Martin Pinzger, and Arie van Deursen. Domain-Specific Languages in Practice: A User Study on the Success Factors. In Model Driven Engineering Languages and Systems, pages 423--437. 2009.
    [18]
    Paul Denny, Andrew Luxton-Reilly, Ewan Tempero, and Jacob Hendrickx. Understanding the syntax barrier for novices. In Proceedings of the 16th Annual Joint Conference on Innovation and Technology in Computer Science Education, ITiCSE '11, pages 208--212. ACM, 2011.
    [19]
    Paul Denny, Andrew Luxton-Reilly, and Ewan Tempero. All syntax errors are not equal. In Proceedings of the 17th ACM Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE '12, pages 75--80. ACM, 2012.
    [20]
    George Lukas. Uses of the LOGO Programming Language in Undergraduate Instruction. In Proceedings of the ACM Annual Conference - Volume 2, ACM '72, pages 1130--1136. ACM, 1972.
    [21]
    Robert Bruce Findler, John Clements, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Paul Steckler, and Matthias Felleisen. DrScheme: A Programming Environment for Scheme. J. Funct. Program., 12(2):159--182, March 2002.
    [22]
    Alan Borning and Tim O'Shea. Deltatalk: An Empirically and Aesthetically Motivated Simplification of the Smalltalk-80 Language. In European Conference on Object-oriented Programming on ECOOP '87, pages 1--10. Springer-Verlag, 1987.
    [23]
    L.K. McIver, Monash University. School of Computer Science, and Software Engineering. Syntactic and Semantic Issues in Introductory Programming Education. Monash University, 2001.
    [24]
    John F. Pane, Brad A. Myers, and Chotirat Ann Ratanamahatana. Studying the language and structure in nonprogrammers' solutions to programming problems. Int. J. Hum.-Comput. Stud., 54(2):237--264, February 2001.
    [25]
    D. P. Delorey, C. D. Knutson, and M. Davies. Mining programming language vocabularies from source code. In 21st Annual Psychology of Programming Interest Group Conference - PPIG, 2009.
    [26]
    Craig Comstock, Zhizhong Jiang, and Peter Naudé. Strategic software development: Productivity comparisons of general development programs. World Academy of Science, Engineering and Technology, 34:25--30, 2007.
    [27]
    Daniel P. Delorey, Charles D. Knutson, and Scott Chun. Do Programming Languages Affect Productivity? A Case Study Using Data from Open Source Projects. In Proceedings of the First International Workshop on Emerging Trends in FLOSS Research and Development, FLOSS '07, pages 8--12. IEEE Computer Society, 2007.
    [28]
    Vennila Ramalingam and Susan Wiedenbeck. An Empirical Study of Novice Program Comprehension in the Imperative and Object-oriented Styles. In Papers Presented at the Seventh Workshop on Empirical Studies of Programmers, ESP '97, pages 124--139. ACM, 1997.
    [29]
    Einar W. Høst. Understanding programmer language. In Companion to the 22Nd ACM SIGPLAN Conference on Object-oriented Programming Systems and Applications Companion, OOPSLA '07, pages 943--944. ACM, 2007.
    [30]
    EinarW. Høst and Bjarte M. Østvold. The programmer's lexicon, volume i: The verbs. In SCAM, pages 193--202. IEEE, 2007.
    [31]
    David Binkley, Marcia Davis, Dawn Lawrie, and Christopher Morrell. To camelcase or under_score. In Program Comprehension, 2009. ICPC'09. IEEE 17th International Conference on, pages 158--167. IEEE, 2009.
    [32]
    Florian Deissenboeck and Markus Pizka. Concise and consistent naming. Software Quality Control, 14(3):261--282, September 2006.
    [33]
    Jeffrey Stylos and Steven Clarke. Usability Implications of Requiring Parameters in Objects' Constructors. In Proceedings of the 29th International Conference on Software Engineering, ICSE '07, pages 529--539. IEEE Computer Society, 2007.
    [34]
    Jeffrey Stylos and Brad A. Myers. The Implications of Method Placement on API Learnability. In Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering, SIGSOFT '08/FSE-16, pages 105--112. ACM, 2008.
    [35]
    Martin Monperrus, Michael Eichberg, Elif Tekes, and Mira Mezini. What Should Developers Be Aware Of? An Empirical Study on the Directives of API Documentation. Empirical Software Engineering, 17(6):703--737, 2012.
    [36]
    Steven Clarke. Measuring API usability. Dr. Dobb's Journal, 29:S6--S9, 2004.
    [37]
    Brian Ellis, Jeffrey Stylos, and Brad Myers. The Factory Pattern in API Design: A Usability Evaluation. In Proceedings of the 29th International Conference on Software Engineering, ICSE '07, pages 302--312. IEEE Computer Society, 2007.
    [38]
    Lennart C.L. Kats and Eelco Visser. The Spoofax Language Workbench: Rules for Declarative Specification of Languages and IDEs. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA '10, pages 444--463. ACM, 2010.
    [39]
    Sven Efftinge, Moritz Eysholdt, Jan Köhnlein, Sebastian Zarnekow, Robert von Massow, Wilhelm Hasselbring, and Michael Hanus. Xbase: Implementing Domain-specific Languages for Java. In Proceedings of the 11th International Conference on Generative Programming and Component Engineering, GPCE '12, pages 112--121. ACM, 2012.
    [40]
    Sergey Dmitriev. Language oriented programming: The next programming paradigm. Technical report, JetBrains, 2004.
    [41]
    Christian Hofer, Klaus Ostermann, Tillmann Rendel, and Adriaan Moors. Polymorphic embedding of dsls. In Proceedings of the 7th International Conference on Generative Programming and Component Engineering, GPCE '08, pages 137--148. ACM, 2008.
    [42]
    Andy Gill. Domain-specific Languages and Code Synthesis Using Haskell. ACM Queue, 12(4):30:30--30:43, April 2014.
    [43]
    Tiark Rompf and Martin Odersky. Lightweight Modular Staging: A Pragmatic Approach to Runtime Code Generation and Compiled DSLs. SIGPLAN Not., 46(2):127--136, October 2010.
    [44]
    David Benavides, Sergio Segura, and Antonio Ruiz Cortés. Automated analysis of feature models 20 years later: A literature review. Inf. Syst., 35(6):615--636, 2010.
    [45]
    Thorsten Berger, Steven She, Rafael Lotufo, Andrzej Wasowski, and Krzysztof Czarnecki. A study of variability models and languages in the systems software domain. IEEE Transactions on Software Engineering, 39(12):1611--1640, 2013.
    [46]
    Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. Feature-Oriented Software Product Lines: Concepts and Implementation. Springer-Verlag, 2013.
    [47]
    Benoit Combemale, Julien Deantoni, Benoit Baudry, Robert France, Jean-Marc Jézéquel, and Jeff Gray. Globalizing Modeling Languages. Computer, pages 68--71, June 2014.

    Cited By

    View all
    • (2023)Experience in Specializing a Generic Realization Language for SPL Engineering at Airbus2023 ACM/IEEE 26th International Conference on Model Driven Engineering Languages and Systems (MODELS)10.1109/MODELS58315.2023.00035(319-330)Online publication date: 1-Oct-2023
    • (2023)Domain-Specific Language for Modeling Fluent API2023 15th International Conference on Electronics, Computers and Artificial Intelligence (ECAI)10.1109/ECAI58194.2023.10194083(1-6)Online publication date: 29-Jun-2023
    • (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
    • Show More Cited By

    Index Terms

    1. Metamorphic Domain-Specific Languages: A Journey into the Shapes of a Language

        Recommendations

        Comments

        Information & Contributors

        Information

        Published In

        cover image ACM Conferences
        Onward! 2014: Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software
        October 2014
        332 pages
        ISBN:9781450332101
        DOI:10.1145/2661136
        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

        In-Cooperation

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        Published: 14 October 2014

        Permissions

        Request permissions for this article.

        Check for updates

        Author Tags

        1. domain-specific languages
        2. metamorphic
        3. programming

        Qualifiers

        • Research-article

        Funding Sources

        Conference

        SPLASH '14
        Sponsor:

        Acceptance Rates

        Onward! 2014 Paper Acceptance Rate 16 of 35 submissions, 46%;
        Overall Acceptance Rate 40 of 105 submissions, 38%

        Upcoming Conference

        Contributors

        Other Metrics

        Bibliometrics & Citations

        Bibliometrics

        Article Metrics

        • Downloads (Last 12 months)8
        • Downloads (Last 6 weeks)0
        Reflects downloads up to 10 Aug 2024

        Other Metrics

        Citations

        Cited By

        View all
        • (2023)Experience in Specializing a Generic Realization Language for SPL Engineering at Airbus2023 ACM/IEEE 26th International Conference on Model Driven Engineering Languages and Systems (MODELS)10.1109/MODELS58315.2023.00035(319-330)Online publication date: 1-Oct-2023
        • (2023)Domain-Specific Language for Modeling Fluent API2023 15th International Conference on Electronics, Computers and Artificial Intelligence (ECAI)10.1109/ECAI58194.2023.10194083(1-6)Online publication date: 29-Jun-2023
        • (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
        • (2019)From DSL specification to interactive computer programming environmentProceedings of the 12th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3357766.3359540(167-178)Online publication date: 20-Oct-2019
        • (2018)Shape-diverse DSLs: languages without borders (vision paper)Proceedings of the 11th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3276604.3276623(215-219)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

        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