loading...
  • Publication
  • RapidPosts
  • Abstract - A Model-Based Approach to Families of Embedded Domain-Specific Languages
 This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
A Model-Based Approach to Families of Embedded Domain-Specific Languages
RapidPost
ISSN: 0098-5589
Jesús Sánchez Cuadrado, University of Murcia, Murcia
Jesús García Molina, University of Murcia, Murcia
With the emergence of model-driven engineering (MDE), the creation of domain-specific languages (DSLs) is becoming a fundamental part of language engineering. The development cost of a DSL should be modest compared to the cost of developing a general-purpose programming language. Reducing the implementation effort and providing reuse techniques are key aspects for DSL approaches to be really effective. In this paper, we present an approach to build embedded domain-specific languages applying the principles of model-driven engineering. On the basis of this approach, we will tackle reuse of DSLs by defining families of DSLs, addressing reuse both from the DSL developer and user point of views. A family of DSLs will be built up by composing several DSLs, so we will propose composition mechanisms for the abstract syntax, concrete syntax, and model transformation levels of a DSL's definition. Finally, we contribute a software framework to support our approach, and we illustrate the paper with a case study to demonstrate its practical applicability.

[1] M. Mernik, J. Heering, and A.M. Sloane, “When and How to Develop Domain-Specific Languages,” ACM Computing Surveys, vol. 37, no. 4, pp. 316-344, 2005.
[2] I. Kurtev, J. Bézivin, F. Jouault, and P. Valduriez, “Model-Based dsl Frameworks,” Companion to the 21st Ann. ACM SIGPLAN Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 602-616, 2006.
[3] T. Clark, A. Evans, P. Sammut, and J. Willams, Applied Metamodelling: A Foundation for Language Driven Development. Xactium, Inc., Sept. 2004.
[4] D.M. Weiss and C.T.R. Lai, Software Product-Line Engineering: A Family-Based Software Development Process. Addison-Wesley Longman Publishing Co., Inc., 1999.
[5] Á. Lédeczi, Á. Bakay, M. Maróti, P. Völgyesi, G. Nordstrom, J. Sprinkle, and G. Karsai, “Composing Domain-Specific Design Environments,” Computer, vol. 34, no. 11, pp. 44-51, Nov. 2001.
[6] S. Kelly and J.-P. Tolvanen, Domain-Specific Modeling: Enabling Full Code Generation. Wiley-IEEE CS Press, 2008.
[7] P. Hudak, “Building Domain-Specific Embedded Languages,” ACM Computing Surveys, vol. 28, p. 196, 1996.
[8] P. Graham, On Lisp: Advanced Techniques for Common Lisp. Prentice Hall, 1994.
[9] S. Ducasse, A. Lienhard, and L. Renggli, “Seaside: A Flexible Environment for Building Dynamic Web Applications,” IEEE Software, vol. 24, no. 5, pp. 64-71, Sept./Oct. 2007.
[10] D. Thomas and A. Hunt, Programming Ruby: The Pragmatic Programmer's Guide. Addison-Wesley, 2000.
[11] J.S. Cuadrado and J.G. Molina, “Building Domain-Specific Languages for Model-Driven Development,” IEEE Software, vol. 24, no. 5, pp. 48-55, Sept./Oct. 2007.
[12] A. Evans, G. Maskeri, P. Sammut, and J.S. Willans, “Building Families of Languages for Model-Driven System Development,” Proc. Second Workshop Software Model Eng., 2003.
[13] J. Greenfield, K. Short, S. Cook, and S. Kent, Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. Wiley, 2004.
[14] F. Budinsky, S.A. Brodsky, and E. Merks, Eclipse Modeling Framework. Pearson Education, 2003.
[15] Meta Object Facility (MOF) 2.0 Core Specification. Object Management Group, Inc., Oct. 2003.
[16] D. Leijen and E. Meijer, “Domain Specific Embedded Compilers,” Proc. Second Conf. Domain-Specific Languages, 1999.
[17] A. Kleppe, “Towards the Generation of a Text-Based IDE from a Language Metamodel,” Proc. Third European Conf. Model Driven Architecture, D.H. Akehurst, R. Vogel, and R.F. Paige, eds., pp. 114-129, 2007.
[18] E. Gamma and K. Beck, Contributing to Eclipse: Principles, Patterns, and Plugins. Addison Wesley Longman Publishing Co., Inc., 2003.
[19] S. Freeman and N. Pryce, “Evolving an Embedded Domain-Specific Language in Java,” Companion to the 21st ACM SIGPLAN Conf. Object-Oriented Programming Systems, Languages, and Applications, pp. 855-865, 2006.
[20] J.S. Cuadrado, J.G. Molina, and M. Menarguez, “RubyTL: A Practical, Extensible Transformation Language,” Proc. Second European Conf. Model Driven Architecture, pp. 158-172, June 2006.
[21] OMG, “UML Specification, v2.1.2,” Feb. 2007.
[22] J. Dingel, Z. Diskin, and A. Zito, “Understanding and Improving UML Package Merge,” Software and Systems Modeling, vol. 7, no. 4, pp. 443-467, Oct. 2008.
[23] J.V. van Wijngaardeen and E. Visser, Program Transformation Mechanics: A Classification of Mechanisms for Program Transformation with a Survey of Existing Transformation Systems, May 2003.
[24] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, 1995.
[25] J.S. Cuadrado and J.G. Molina, “Modularization of Model Transformations through a Phasing Mechanism,” Software and Systems Modeling, vol. 8, pp. 325-345, 2008.
[26] I. Kurtev, K. van den Berg, and F. Jouault, “Rule-Based Modularization in Model Transformation Languages Illustrated with Atl,” Science of Computer Programming, vol. 68, no. 3, pp. 111-127, 2007.
[27] R. Lämmel, “Adding Superimposition to a Language Semantics— Extended Abstract,” Proc. AOSD '02 Workshop Foundations of Aspect-Oriented Languages, G.T. Leavens and C. Clifton, eds., Mar. 2003.
[28] J.S. Cuadrado and J.G. Molina, “A Plugin-Based Language to Experiment with Model Transformations,” Proc. Ninth Int'l Conf. Model Driven Eng. Languages and Systems, pp. 336-350, Oct. 2006.
[29] D. Leijen and E. Meijer, “Parsec: Direct Style Monadic Parser Combinators for the Real World,” Technical Report UU-CS-2001-35, Dept. of Information and Computing Sciences, Utrecht Univ., 2001.
[30] P. Hudak, “Modular Domain Specific Languages and Tools,” Proc. Fifth Int'l Conf. Software Reuse, P. Devanbu and J. Poulin, eds., pp.134-142, 1998.
[31] S.N. Kamin and D. Hyatt, “A Special-Purpose Language for Picture-Drawing,” Proc. Conf. Domain-Specific Languages, pp. 23-23, 1997.
[32] K. Czarnecki, J.T. O'Donnell, J. Striegnitz, and W. Taha, “DSL Implementation in Metaocaml, Template Haskell, and C++,” Domain-Specific Program Generation, C. Lengauer, D.S. Batory, C.Consel, and M. Odersky, eds., pp. 51-72, Springer, 2003.
[33] M. Wimmer and G. Kramler, “Bridging Grammarware and Modelware,” Proc. Satellite Events at the MoDELS '05 Conf., pp.159-168, 2006.
[34] A. Lédeczi, G. Nordstrom, G. Karsai, P. Valgyesi, and M. Maróti, “On Metamodel Composition,” Proc. IEEE Int'l Conf. Control Applications, pp. 756-760, 2001.
[35] S. Brinkkemper, M. Saeki, and F. Harmsen, “Meta-Modelling Based Assembly Techniques for Situational Method Engineering,” Information Systems, vol. 24, no. 3, pp. 209-228, doi: 10.1016/S0306-4379(99)00016-2, May 1999.
[36] D. Spinellis, “Notable Design Patterns for Domain Specific Languages,” J. Systems and Software, vol. 56, no. 1, pp. 91-99, Feb. 2001.
[37] M. Voelter, “A Family of Languages for Architecture Description,” Proc. Eighth OOPSLA Workshop Domain-Specific Modeling, Oct. 2008.
[38] M. Belaunde, “Transformation Composition in QVT,” Proc. First European Workshop Composition of Model Transformations, pp. 45-52, July 2006.

Index Terms:
Domain-specific languages, model-driven development, families of DSLs, DSL composition.
Citation:
Jesús Sánchez Cuadrado, Jesús García Molina, "A Model-Based Approach to Families of Embedded Domain-Specific Languages," IEEE Transactions on Software Engineering, 05 Feb. 2009. IEEE computer Society Digital Library. IEEE Computer Society, <http://doi.ieeecomputersociety.org/10.1109/TSE.2009.14>
Usage of this product signifies your acceptance of the Terms of Use.