skip to main content
10.1145/1868281.1868293acmotherconferencesArticle/Chapter ViewAbstractPublication PagesldtaConference Proceedingsconference-collections
research-article

Formally specified type checkers for domain specific languages: experience report

Authors Info & Claims
Published:28 March 2010Publication History

ABSTRACT

An important part of the usability of a programming or specification language lies in the presence of supporting tools that are provided with the language, e.g., type checkers, debuggers and simulators. Development of such tools for domain-specific languages imposes a number of specific evolvability requirements. Our contribution is twofold: First, we present an MSOS-based approach to automatic generation of formally specified type checkers for domain-specific languages. Second, we report on the application of our approach to Chi, a high level specification language for describing concurrent systems. The resulting type checker has been successfully integrated in the tool chain of the Chi language.

References

  1. }}A. V. Aho, M. S. Lam, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques, and Tools (2nd Edition). Addison-Wesley Longman, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. }}I. Attali. Compiling TYPOL with attribute grammars. In P. Deransart, B. Lorho, and J. Maluszyński, editors, Programming Language Implementation and Logic Programming, volume 348 of LNCS, pages 252--272. Springer, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. }}E. Balland, P. Brauner, R. Kopetz, P. Moreau, and A. Reilles. Tom: Piggybacking Rewriting on Java. In F. Baader, editor, RTA, volume 4533 of LNCS, pages 36--47. Springer, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. }}D. A. van Beek, P. Collins, D. E. Nadales, J. E. Rooda, and R. R. H. Schiffelers. New concepts in the abstract format of the compositional interchange format. In A. Giua, C. Mahuela, M. Silva, and J. Zaytoon, editors, 3rd IFAC Conference on Analysis and Design of Hybrid Systems, pages 250--255, Zaragoza, Spain, 2009.Google ScholarGoogle Scholar
  5. }}D. A. van Beek, K. L. Man, M. A. Reniers, J. E. Rooda, and R. R. H. Schiffelers. Syntax and consistent equation semantics of hybrid Chi. JLAP, 68(1--2):129--210, 2006.Google ScholarGoogle Scholar
  6. }}D. A. van Beek, A. van den Ham, and J. E. Rooda. Modelling and control of process industry batch production systems. In 15th Triennial World Congress of the International Federation of Automatic Control, 2002.Google ScholarGoogle Scholar
  7. }}M. G. J. van den Brand, J. Heering, P. Klint, and P. A. Olivier. Compiling Rewrite Systems: The ASF+SDF Compiler. ACM Transactions on Programming Languages and Systems, 24(4):334--368, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. }}M. G. J. van den Brand, A. P. van der Meer, and A. Serebrenik. Type Checking Evolving Languages with MSOS. In J. Palsberg, editor, Semantics and Algebraic Specification, volume 5700 of LNCS, pages 207--226. Springer, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. }}M. Bravenboer, K. T. Kalleberg, R. Vermaas, and E. Visser. Stratego/xt 0.17. a language and toolset for program transformation. Sci. Comput. Program., 72(1--2):52--70, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. }}K. B. Bruce, J. Crabtree, T. P. Murtagh, R. van Gent, A. Dimock, and R. Muller. Safe and decidable type checking in an object-oriented language. ACM SIGPLAN Notices, 28(10):29--46, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. }}F. Chalub. An implementation of modular SOS in Maude. Master's thesis, Universidade Federal Fluminense, Brazil, 2005. http://www.ic.uff.br/~frosario/dissertation.pdf.Google ScholarGoogle Scholar
  12. }}N. H. Christensen. Domain-specific languages in software development - and the relation to partial evaluation. PhD thesis, DIKU, Dept. of Computer Science, University of Copenhagen, Universitetsparken 1, DK-2100 Copenhagen East, Denmark, July 2003.Google ScholarGoogle Scholar
  13. }}A. Cleve, J. Henrard, and J. Hainaut. Co-transformations in Information System Reengineering. ENTCS, 137(3):5--15, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. }}P. Deransart, A. Ed-Dbali, and L. Cervoni. Prolog: the standard: reference manual. Springer, London, UK, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. }}A. Dijkstra and S. D. Swierstra. Typing Haskell with an Attribute Grammar. In V. Vene and T. Uustalu, editors, Advanced Functional Programming, volume 3622 of LNCS, pages 1--72. Springer, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. }}T. Ekman and G. Hedin. Modular Name Analysis for Java Using JastAdd. In Lämmel et al. {21}, pages 422--436. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. }}B. Frederiksen. Pyke, 2009. http://pyke.sourceforge.net.Google ScholarGoogle Scholar
  18. }}E. Friedman-Hill. Jess in Action: Java Rule-Based Systems (In Action series). Manning Publications, December 2002.Google ScholarGoogle Scholar
  19. }}R. Grimm, L. Harris, and A. Le. Typical: taking the tedium out of typing. Technical Report TR2007-904, New York University, November 2007.Google ScholarGoogle Scholar
  20. }}F. Jouault, J. Bézivin, and I. Kurtev. TCS: a DSL for the specification of textual concrete syntaxes in model engineering. In GPCE '06: Proceedings of the 5th international conference on Generative programming and component engineering, pages 249--254, New York, NY, USA, 2006. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. }}R. Lämmel, J. Saraiva, and J. Visser, editors. Generative and Transformational Techniques in Software Engineering, International Summer School, Revised Papers, volume 4143 of LNCS. Springer, 2006.Google ScholarGoogle Scholar
  22. }}M. Y. Levin and B. C. Pierce. TinkerType: a language for playing with formal systems. J. Funct. Program., 13(2):295--316, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. }}P. D. Mosses. Action Semantics, volume 26 of Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. }}P. D. Mosses. Modular Structural Operational Semantics. JLAP, 60--61:195--228, 2004.Google ScholarGoogle Scholar
  25. }}P. D. Mosses and M. J. New. Implicit propagation in structural operational semantics. In SOS 2008, 5th Workshop on Structural Operational Semantics, Reykjavik, Iceland, 6 July 2008, Proceedings, volume 229 of Electr. Notes Theor. Comput. Sci., pages 49--66. Elsevier, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. }}M. Pettersson. Compiling Natural Semantics, volume 1549 of LNCS. Springer, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. }}B. C. Pierce. Types and programming languages. MIT Press, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. }}D. Plump. The graph programming language gp. In S. Bozapalidis and G. Rahonis, editors, CAI, volume 5725 of Lecture Notes in Computer Science, pages 99--122. Springer, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. }}H. J. A. Rulkens, E. J. J. van Campen, J. van Herk, and J. E. Rooda. Batch size optimization of a furnace and pre-clean area by using dynamic simulations. In Advanced Semiconductor Manufacturing Conference and Workshop, pages 439--444, Boston, MA, 1998. IEEE/SEMI.Google ScholarGoogle ScholarCross RefCross Ref
  30. }}D. A. Schmidt. Denotational Semantics: A Methodology for Language Development. Allyn and Bacon, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. }}J. Uhl, S. Drossopoulou, G. Persch, G. Goos, M Dausmann, G Winterstein, and W. Kirchgässner. An Attribute Grammar for the Semantic Analysis of Ada, volume 139 of LNCS. Springer, 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. }}N. P. Veerman. Revitalizing Modifiability of Legacy Assets. In CSMR, pages 19--29. IEEE Computer Society, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Formally specified type checkers for domain specific languages: experience report

      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 Other conferences
        LDTA '10: Proceedings of the Tenth Workshop on Language Descriptions, Tools and Applications
        March 2010
        93 pages
        ISBN:9781450300636
        DOI:10.1145/1868281

        Copyright © 2010 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: 28 March 2010

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader