Abstract
EriLex is a software tool for generating support code for embedded domain specific languages (EDSLs). It supports specifying syntax, static semantics, and dynamic semantics of an EDSL, mixing the method chaining style and the functional nesting style in the EDSL embedding, and using native types and values in the EDSL. The EriLex approach to EDSL embedding assumes only basic object-oriented features and generics in the host language and does not require any particular technology in the definition or implementation of host languages and tools. The generated support code allows the EDSLs to reuse not only host language compilers but also host language semantic editors.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
jMock, http://www.jmock.org
Meta Programming System, http://www.jetbrains.com/mps/
Netbeans quality dashboard (2009), http://quality.netbeans.org/sourcelines/summary-teams.html
Batory, D., Lofaso, B., Smaragdakis, Y.: JTS: Tools for implementing domain-specific languages. In: ICSR ’98, p. 143. IEEE Computer Society, Washington (1998)
Bravenboer, M., Visser, E.: Concrete syntax for objects: domain-specific language embedding and assimilation without restrictions. In: OOPSLA ’04, pp. 365–383. ACM, New York (2004)
Carette, J., Kiselyov, O., Shan, C.c.: Finally tagless, partially evaluated: Tagless staged interpreters for simpler typed languages. J. Funct. Program. 19(5), 509–543 (2009)
Clark, T., Sammut, P., Willans, J.: Superlanguages, Developing Languages and Applications with XMF, 1st edn. Ceteva (2008)
Cremet, V., Garillot, F., Lenglet, S., Odersky, M.: A core calculus for Scala type checking. In: Královič, R., Urzyczyn, P. (eds.) MFCS 2006. LNCS, vol. 4162, pp. 1–23. Springer, Heidelberg (2006)
Engelfriet, J., Vogler, H.: Pushdown machines for the macro tree transducer. Theor. Comput. Sci. 42(3), 251–368 (1986)
Fogarty, S., Pasalic, E., Siek, J., Taha, W.: Concoqtion: indexed types now? In: PEPM ’07, pp. 112–121. ACM, New York (2007)
Grönniger, H., Krahn, H., Rumpe, B., Schindler, M., Völkel, S.: MontiCore: a framework for the development of textual domain specific languages. In: ICSE Companion, pp. 925–926 (2008)
Hudak, P.: Building domain-specific embedded languages. ACM Computing Surveys 28 (1996)
Kennedy, A., Russo, C.V.: Generalized algebraic data types and object-oriented programming. In: OOPSLA ’05, pp. 21–40. ACM, New York (2005)
King, G., Bauer, C., Andersen, M.R., Bernard, E., Ebersole, S.: Hibernate reference documentation 3.5.1 (2010), http://www.hibernate.org/docs.html
Klint, P.: A meta-environment for generating programming environments. In: Bergstra, J.A., Feijs, L.M.G. (eds.) Algebraic Methods 1989. LNCS, vol. 490, pp. 105–124. Springer, Heidelberg (1991)
Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Comput. Surv. 37(4), 316–344 (2005)
Pasalic, E., Taha, W., Sheard, T.: Tagless staged interpreters for typed languages. SIGPLAN Not. 37(9), 218–229 (2002)
Peyton Jones, S., Vytiniotis, D., Weirich, S., Washburn, G.: Simple unification-based type inference for GADTs. SIGPLAN Not. 41(9), 50–61 (2006)
Pfenning, F., Elliot, C.: Higher-order abstract syntax. In: PLDI ’88, pp. 199–208. ACM, New York (1988)
Renggli, L., Denker, M., Nierstrasz, O.: Language Boxes: Bending the host language with modular language changes. In: SLE ’09, pp. 274–293 (2009)
Seaton, C.: A programming language where the syntax and semantics are mutable at runtime. Tech. Rep. CSTR-07-005, University of Bristol (2007)
Sewell, P., Nardelli, F.Z., Owens, S., Peskine, G., Ridge, T., Sarkar, S., Strniša, R.: Ott: effective tool support for the working semanticist. In: ICFP ’07, pp. 1–12. ACM, New York (2007)
Tratt, L.: The Converge programming language. Tech. Rep. TR-05-01, Department of Computer Science, King’s College London (2005)
Xi, H., Chen, C., Chen, G.: Guarded recursive datatype constructors. SIGPLAN Not. 38(1), 224–235 (2003)
Xi, H., Scott, D.: Dependent types in practical programming. In: POPL ’98, pp. 214–227. ACM Press, New York (1998)
Xu, H.: A general framework for method chaining style embedding of domain specific languages. UNC Technical Report (2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Xu, H. (2010). EriLex: An Embedded Domain Specific Language Generator. In: Vitek, J. (eds) Objects, Models, Components, Patterns. TOOLS 2010. Lecture Notes in Computer Science, vol 6141. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-13953-6_11
Download citation
DOI: https://doi.org/10.1007/978-3-642-13953-6_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-13952-9
Online ISBN: 978-3-642-13953-6
eBook Packages: Computer ScienceComputer Science (R0)