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.
- }}A. V. Aho, M. S. Lam, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques, and Tools (2nd Edition). Addison-Wesley Longman, 2006. Google ScholarDigital Library
- }}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 ScholarDigital Library
- }}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 ScholarDigital Library
- }}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 Scholar
- }}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 Scholar
- }}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 Scholar
- }}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 ScholarDigital Library
- }}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 ScholarDigital Library
- }}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 ScholarDigital Library
- }}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 ScholarDigital Library
- }}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 Scholar
- }}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 Scholar
- }}A. Cleve, J. Henrard, and J. Hainaut. Co-transformations in Information System Reengineering. ENTCS, 137(3):5--15, 2005. Google ScholarDigital Library
- }}P. Deransart, A. Ed-Dbali, and L. Cervoni. Prolog: the standard: reference manual. Springer, London, UK, 1996. Google ScholarDigital Library
- }}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 ScholarDigital Library
- }}T. Ekman and G. Hedin. Modular Name Analysis for Java Using JastAdd. In Lämmel et al. {21}, pages 422--436. Google ScholarDigital Library
- }}B. Frederiksen. Pyke, 2009. http://pyke.sourceforge.net.Google Scholar
- }}E. Friedman-Hill. Jess in Action: Java Rule-Based Systems (In Action series). Manning Publications, December 2002.Google Scholar
- }}R. Grimm, L. Harris, and A. Le. Typical: taking the tedium out of typing. Technical Report TR2007-904, New York University, November 2007.Google Scholar
- }}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 ScholarDigital Library
- }}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 Scholar
- }}M. Y. Levin and B. C. Pierce. TinkerType: a language for playing with formal systems. J. Funct. Program., 13(2):295--316, 2003. Google ScholarDigital Library
- }}P. D. Mosses. Action Semantics, volume 26 of Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, 1992. Google ScholarDigital Library
- }}P. D. Mosses. Modular Structural Operational Semantics. JLAP, 60--61:195--228, 2004.Google Scholar
- }}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 ScholarDigital Library
- }}M. Pettersson. Compiling Natural Semantics, volume 1549 of LNCS. Springer, 1999. Google ScholarDigital Library
- }}B. C. Pierce. Types and programming languages. MIT Press, 2002. Google ScholarDigital Library
- }}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 ScholarDigital Library
- }}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 ScholarCross Ref
- }}D. A. Schmidt. Denotational Semantics: A Methodology for Language Development. Allyn and Bacon, 1986. Google ScholarDigital Library
- }}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 ScholarDigital Library
- }}N. P. Veerman. Revitalizing Modifiability of Legacy Assets. In CSMR, pages 19--29. IEEE Computer Society, 2003. Google ScholarDigital Library
Index Terms
- Formally specified type checkers for domain specific languages: experience report
Recommendations
A DSL for writing type systems for Xtext languages
PPPJ '11: Proceedings of the 9th International Conference on Principles and Practice of Programming in JavaXtext is a framework for the development of languages, which also generates all the typical and recurrent artifacts for a fully-fledged IDE on top of Eclipse. The validation (e.g., checking the correctness of programs from the point of view of types) of ...
Everything old is new again: quoted domain-specific languages
PEPM '16: Proceedings of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program ManipulationWe describe a new approach to implementing Domain-Specific Languages(DSLs), called Quoted DSLs (QDSLs), that is inspired by two old ideas:quasi-quotation, from McCarthy's Lisp of 1960, and the subformula principle of normal proofs, from Gentzen's ...
Sectional domain specific languages
DSAL '09: Proceedings of the 4th workshop on Domain-specific aspect languagesNowadays, many problems are solved by using a domain specific language (DSL), i.e., a programming language tailored to work on a particular application domain. Normally, a new DSL is designed and implemented from scratch requiring a long time-to-market ...
Comments