Formal Islands

  • Emilie Balland
  • Claude Kirchner
  • Pierre-Etienne Moreau
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4019)


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.


Formal Island Language Extension Abstract Syntax Tree Abstraction Function Predicate Mapping 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Alves, T., Silva, P., Visser, J., Oliveira, J.N.: Strategic Term Rewriting And Its Application To A VDM-SL to SQL Conversion. In: Fitzgerald, J.S., Hayes, I.J., Tarlecki, A. (eds.) FM 2005. LNCS, vol. 3582, pp. 399–414. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  2. 2.
    Baader, F., Nipkow, T.: Term Rewriting and all That. Cambridge University Press, Cambridge (1998)Google Scholar
  3. 3.
    Balland, E., Kirchner, C., Moreau, P.-E.: Formal Islands. Technical report, LORIA (2006), available at
  4. 4.
    Bravenboer, M., de Groot, R., Visser, E.: Metaborg in action: Examples of domain-specific language embedding and assimilation using Stratego/XT. In: Lämmel, R., Saraiva, J., Visser, J. (eds.) GTTSE 2005. LNCS, vol. 4143, Springer, Heidelberg (2006)CrossRefGoogle Scholar
  5. 5.
    Clossman, G., Shaw, P., Hapner, M., Klein, J., Pledereder, R., Becker, B.: Java and relational databases (tutorial): SQLJ. In: Proceedings of the ACM SIGMOD International Conference on Management of Data, p. 500. ACM Press, New York (1998)Google Scholar
  6. 6.
    de Roever, W.-P., Engelhardt, K.: Data Refinement: Model-Oriented Proof Methods and their Comparison. Cambridge Tracts in Theoretical Computer Science, vol. 47. Cambridge University Press, Cambridge (1998)zbMATHCrossRefGoogle Scholar
  7. 7.
    Doh, K.-G., Mosses, P.D.: Composing programming languages by combining action-semantics modules. Science of Computer Programming 47(1), 3–36 (2003)zbMATHCrossRefGoogle Scholar
  8. 8.
    Kirchner, C., Moreau, P.-E., Reilles, A.: Formal validation of pattern matching code. In: Barahona, P., Felty, A. (eds.) Proceedings of the 7th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming, pp. 187–197. ACM Press, New York (2005)CrossRefGoogle Scholar
  9. 9.
    Melton, J., Eisenberg, A.: Understanding SQL and Java Together: A Guide to SQLJ, JDBC, and Related Technologies. Morgan Kaufmann, San Francisco (2000)Google Scholar
  10. 10.
    Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. Technical report, CWI (2003)Google Scholar
  11. 11.
    Moonen, L.: Generating robust parsers using island grammars. In: Proceedings of the 8th Working Conference on Reverse Engineering, pp. 13–22. IEEE Computer Society Press, Los Alamitos (2001)CrossRefGoogle Scholar
  12. 12.
    Moreau, P.-E., Ringeissen, C., Vittek, M.: A Pattern Matching Compiler for Multiple Target Languages. In: Hedin, G. (ed.) CC 2003 and ETAPS 2003. LNCS, vol. 2622, pp. 61–76. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  13. 13.
    Spinellis, D.: Notable design patterns for domain-specific languages. Journal of Systems and Software 56(1), 91–99 (2001)CrossRefGoogle Scholar
  14. 14.
    van Deursen, A., Klint, P., Visser, J.: Domain-specific languages: An annotated bibliography. SIGPLAN Notices 35(6), 26–36 (2000)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Emilie Balland
    • 1
  • Claude Kirchner
    • 1
  • Pierre-Etienne Moreau
    • 1
  1. 1.UHP & LORIA, INRIA & LORIA, and INRIA & LORIAVillers-lès-NancyFrance

Personalised recommendations