Formal Islands

Motivated by the proliferation and usefulness of Domain Specific Languages as well as the demand for enriching well established languages by high level capabilities like pattern matching or invariant checking, we introduce the Formal Islands framework. The main idea consists to integrate, in existing programs, formally defined parts called islands, on which proofs and tests can be meaningfully developed. Then, Formal Islands could be safely dissolved into their hosting language to be transparently integrated in the existing development environment. The paper presents this generic framework and shows that the properties valid on the Formal Islands are also valid on the corresponding dissolved host codes. Formal Islands can be used as a general methodology to develop new DSLs and we show that language extensions like SQLJ —embedding SQL capabilities in Java —, or Tom —a Java language extension allowing for pattern matching and rewriting—are indeed islands.

[1]  John Hamer,et al.  A Modular Monadic Action Semantics , 1997, DSL.

[2]  M Mernik,et al.  When and how to develop domain-specific languages , 2005, CSUR.

[3]  Johannes Klein,et al.  Java and relational databases (tutorial): SQLJ , 1998, SIGMOD '98.

[4]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[5]  Willem-Paul de Roever,et al.  Data Refinement by Willem-Paul de Roever , 1998 .

[6]  José Nuno Oliveira,et al.  Strategic Term Rewriting and Its Application to a VDMSL to SQL Conversion , 2005, FM.

[7]  João Saraiva,et al.  Generative and Transformational Techniques in Software Engineering II , 2007, Lecture Notes in Computer Science.

[8]  Peter D. Mosses,et al.  Composing programming languages by combining action-semantics modules , 2001, Sci. Comput. Program..

[9]  Willem-Paul de Roever,et al.  Data Refinement: Theory , 1998 .

[10]  Diomidis Spinellis,et al.  Notable design patterns for domain-specific languages , 2001, J. Syst. Softw..

[11]  Kai Engelhardt,et al.  Data Refinement: Model-Oriented Proof Methods and their Comparison , 1998 .

[12]  Oege de Moor,et al.  Compiling embedded languages , 2003, J. Funct. Program..

[13]  Eelco Visser,et al.  MetaBorg in Action: Examples of Domain-Specific Language Embedding and Assimilation Using Stratego/XT , 2005, GTTSE.

[14]  Claude Kirchner,et al.  Formal validation of pattern matching code , 2005, Trustworthy Software.

[15]  Anthony M. Sloane,et al.  Domain-specific languages , 2003, 36th Annual Hawaii International Conference on System Sciences, 2003. Proceedings of the.

[16]  Emir Pasalic,et al.  DSL implementation using staging and monads , 1999, DSL '99.

[17]  Tobias Nipkow,et al.  Term rewriting and all that , 1998 .

[18]  Christophe Ringeissen,et al.  A Pattern Matching Compiler for Multiple Target Languages , 2003, CC.

[19]  Jim Melton Understanding SQL and Java Together: A Guide to SGLJ, JDBC, and Related Technologies , 2000 .

[20]  Ian J. Hayes,et al.  FM 2005: Formal Methods, International Symposium of Formal Methods Europe, Newcastle, UK, July 18-22, 2005, Proceedings , 2005, FM.

[21]  Leon Moonen,et al.  Generating robust parsers using island grammars , 2001, Proceedings Eighth Working Conference on Reverse Engineering.

[22]  Chun Zhang,et al.  Storing and querying ordered XML using a relational database system , 2002, SIGMOD '02.