Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
Baader, F., Nipkow, T.: Term Rewriting and all That. Cambridge University Press, Cambridge (1998)
Balland, E., Kirchner, C., Moreau, P.-E.: Formal Islands. Technical report, LORIA (2006), available at http://hal.inria.fr/inria-00001146
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)
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)
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)
Doh, K.-G., Mosses, P.D.: Composing programming languages by combining action-semantics modules. Science of Computer Programming 47(1), 3–36 (2003)
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)
Melton, J., Eisenberg, A.: Understanding SQL and Java Together: A Guide to SQLJ, JDBC, and Related Technologies. Morgan Kaufmann, San Francisco (2000)
Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. Technical report, CWI (2003)
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)
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)
Spinellis, D.: Notable design patterns for domain-specific languages. Journal of Systems and Software 56(1), 91–99 (2001)
van Deursen, A., Klint, P., Visser, J.: Domain-specific languages: An annotated bibliography. SIGPLAN Notices 35(6), 26–36 (2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Balland, E., Kirchner, C., Moreau, PE. (2006). Formal Islands. In: Johnson, M., Vene, V. (eds) Algebraic Methodology and Software Technology. AMAST 2006. Lecture Notes in Computer Science, vol 4019. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11784180_7
Download citation
DOI: https://doi.org/10.1007/11784180_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-35633-2
Online ISBN: 978-3-540-35636-3
eBook Packages: Computer ScienceComputer Science (R0)