skip to main content
10.1145/1982185.1982470acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

Incremental concrete syntax for embedded languages

Published:21 March 2011Publication History

ABSTRACT

Embedded domain-specific languages (EDSLs) are known to improve the productivity of developers. However, for many domains no DSL implementation is available. Two important reasons are: First, the effort to implement embedded DSLs that provide the domain's established syntax (called concrete syntax) is very high. Second, the embedded DSL and its underlying general-purpose programming language (GPL) are typically tightly integrated which hampers reusability across different GPLs.

In this paper, we present an approach that significantly reduces the necessary effort to implement embedded DSLs with concrete syntax. The idea is to use island grammars to specify the EDSL's concrete syntax. This enables the developer to implement the embedded DSL as a library and to incrementally specify the concrete syntax using meta-data. Only those parts of the EDSL's grammar need to be specified that deviate from the grammar of the GPL and which is required to enable the integration with the GPL.

References

  1. M. Bravenboer and E. Visser. Concrete Syntax for Objects: Domain-Specific Language Embedding and Assimilation without Restrictions. In OOPSLA, pages 365--383, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. J. R. Cordy. The TXL Source Transformation Language. Science of Computer Programming, 61(3): 190--210, 2006. Special Issue on The Fourth Workshop on Language Descriptions, Tools, and Applications (LDTA '04). Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. T. Dinkelaker, M. Eichberg, and M. Mezini. An Architecture for Composing Embedded Domain-Specific Languages. In AOSD, pages 49--60. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J. Earley. An Efficient Context-Free Parsing Algorithm. Communications of the ACM, 13(2): 94--102, 1970. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. B. Ford. Parsing Expression Grammars: A Recognition-Based Syntactic Foundation. ACM SIGPLAN Notices, 39(1): 122, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. P. Hudak. Building Domain-Specific Embedded Languages. ACM Computing Surveys, 28(4): 196, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. A. Johnstone, P. Mosses, and E. Scott. An Agile Approach to Language Modelling and Development. Innovations in Systems and Software Engineering, 6: 145--153, 2010. 10.1007/s11334-009-0111-6.Google ScholarGoogle ScholarCross RefCross Ref
  8. L. C. Kats, M. de Jonge, E. Nilsson-Nyman, and E. Visser. Providing Rapid Feedback in Generated Modular Language Environments: Adding Error Recovery to Scannerless Generalized-LR Parsing. In OOPSLA, pages 445--464, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. R. Knöll and M. Mezini. π: A Pattern Language. ACM SIGPLAN Notices, 44(10): 503--522, 2009.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. D. Knuth. Semantics of Context-Free Languages. Theory of Computing Systems, 2(2): 127--145, 1968.Google ScholarGoogle Scholar
  11. T. Kosar, M. López, E. Pablo, P. Barrientos, and M. Mernik. A Preliminary Study on Various Implementation Approaches of Domain-Specific Language. Information and Software Technology, 50(5): 390--405, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. P. Maes. Computational Reflection. PhD thesis, Vrije Universiteit, Brussel, 1987.Google ScholarGoogle Scholar
  13. J. Melton and A. Eisenberg. Understanding SQL and Java together: a guide to SQLJ, JDBC, and related technologies. Morgan Kaufmann, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. M. Mernik, J. Heering, and A. Sloane. When and How to Develop Domain-Specific Languages. ACM Computing Surveys (CSUR), 37(4): 316--344, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. L. Moonen. Generating Robust Parsers using Island Grammars. In Proceedings of the 8th Working Conference on Reverse Engineering, pages 13--22. IEEE Computer Society, October 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. J. Poruban, M. Forgac, M. Sabo, and M. Behalek. Annotation Based Parser Generator. Computer Science and Information Systems, 7: 291--307, 2010.Google ScholarGoogle ScholarCross RefCross Ref
  17. L. Renggli, T. Gîrba, and O. Nierstrasz. Embedding Languages without Breaking Tools. ECOOP, 6183: 380--404, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. N. Synytskyy, J. R. Cordy, and T. R. Dean. Robust Multilingual Parsing using Island Grammars. In Proc. of Conference of the Centre for Advanced Studies on Collaborative Research, pages 266--278. IBM Press, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. L. Tratt. Domain Specific Language Implementation via Compile-Time Meta-Programming. ACM Trans. Program. Lang. Syst., 30(6): 1--40, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. van den Brand and P. Klint. ATerms for Manipulation and Exchange of Structured Data: It's all about Sharing. Information and Software Technology, 49(1): 55--64, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. van den Brand, J. Scheerder, J. Vinju, and E. Visser. Disambiguation Filters for Scannerless Generalized LR Parsers. In CC, LNCS. Springer, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. E. Visser. Scannerless Generalized-LR Parsing. Technical Report P9707, Programming Research Group, University of Amsterdam, July 1997.Google ScholarGoogle Scholar
  23. E. Visser. Syntax Definition for Language Prototyping. PhD thesis, Universiteit van Amsterdam, The Netherlands, 1997.Google ScholarGoogle Scholar

Index Terms

  1. Incremental concrete syntax for embedded languages

          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
          • Published in

            cover image ACM Conferences
            SAC '11: Proceedings of the 2011 ACM Symposium on Applied Computing
            March 2011
            1868 pages
            ISBN:9781450301138
            DOI:10.1145/1982185

            Copyright © 2011 ACM

            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]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 21 March 2011

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            Overall Acceptance Rate1,650of6,669submissions,25%

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader