Variability Support in Domain-Specific Language Development

  • Edoardo Vacchi
  • Walter Cazzola
  • Suresh Pillay
  • Benoît Combemale
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8225)

Abstract

Domain Specific Languages (DSLs) are widely adopted to capitalize on business domain experiences. Consequently, DSL development is becoming a recurring activity. Unfortunately, even though it has its benefits, language development is a complex and time-consuming task. Languages are commonly realized from scratch, even when they share some concepts and even though they could share bits of tool support. This cost can be reduced by employing modern modular programming techniques that foster code reuse. However, selecting and composing these modules is often only within the reach of a skilled DSL developer. In this paper we propose to combine modular language development and variability management, with the objective of capitalizing on existing assets. This approach explicitly models the dependencies between language components, thereby allowing a domain expert to configure a desired DSL, and automatically derive its implementation. The approach is tool supported, using Neverlang to implement language components, and the Common Variability Language (CVL) for managing the variability and automating the configuration. We will further illustrate our approach with the help of a case study, where we will implement a family of DSLs to describe state machines.

Keywords

Domain-Specific Languages Language Design and Implementation Variability Management CVL and Neverlang 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Aho, A.V., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools. Addison Wesley, Reading (1986)Google Scholar
  2. 2.
    Cazzola, W.: Domain-Specific Languages in Few Steps: The Neverlang Approach. In: Gschwind, T., De Paoli, F., Gruhn, V., Book, M. (eds.) SC 2012. LNCS, vol. 7306, pp. 162–177. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  3. 3.
    Cazzola, W., Vacchi, E.: Neverlang 2: Componentised Language Development for the JVM. In: Binder, W., Bodden, E., Löwe, W. (eds.) SC 2013. LNCS, vol. 8088, pp. 17–32. Springer, Heidelberg (2013)Google Scholar
  4. 4.
    Cengarle, M.V., Grönniger, H., Rumpe, B.: Variability within Modeling Language Definitions. In: Schürr, A., Selic, B. (eds.) MODELS 2009. LNCS, vol. 5795, pp. 670–684. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  5. 5.
    Chen, L., Ali Babar, M.: A Systematic Review of Evaluation of Variability Management Approaches in Software Product Lines. Journal of Information and Software Technology 53(4), 344–362 (2011)CrossRefGoogle Scholar
  6. 6.
    Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley (August 2001)Google Scholar
  7. 7.
    Crane, M.L., Dingel, J.: UML Vs. Classical Vs. Rhapsody Statecharts: Not All Models Are Created Equal. In: Briand, L.C., Williams, C. (eds.) MoDELS 2005. LNCS, vol. 3713, pp. 97–112. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  8. 8.
    Czarnecki, K.: Overview of Generative Software Development. In: Banâtre, J.-P., Fradet, P., Giavitto, J.-L., Michel, O. (eds.) UPP 2004. LNCS, vol. 3566, pp. 326–341. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  9. 9.
    Efftinge, S., Völter, M.: Oaw xText: A Framework for Textual DSLs. In: Proc. of the EclipseCon Summit Europe 2006 (ESE 2006), Esslingen, Germany (November 2006)Google Scholar
  10. 10.
    Ekman, T., Hedin, G.: The JastAdd System — Modular Extensible Compiler Construction. Science of Computer Programming 69(1-3), 14–26 (2007)MathSciNetCrossRefMATHGoogle Scholar
  11. 11.
    Fleurey, F., Haugen, Ø., Møller-Pedersen, B., Svendsen, A., Zhang, X.: Standardizing Variability – Challenges and Solutions. In: Ober, I., Ober, I. (eds.) SDL 2011. LNCS, vol. 7083, pp. 233–246. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  12. 12.
    Haugen, Ø., Møller-Pedersen, B., Oldevik, J., Olsen, G.K., Svendsen, A.: Adding Standardized Variability to Domain Specific Languages. In: Proc. of SPLC 2008, Limerick, Ireland, pp. 139–148. IEEE (September 2008)Google Scholar
  13. 13.
    Henriques, P.R., Varanda Pereira, M.J., Mernik, M., Lenič, M., Gray, J., Wu, H.: Automatic Generation of Language-Based Tools Using the LISA System. IEE Proc.— Software 152(2), 54–69 (2005)CrossRefGoogle Scholar
  14. 14.
    Hubaux, A., Classen, A., Mendonça, M., Heymans, P.: A Preliminary Review on the Application of Feature Diagrams in Practice. In: Proc. of VaMoS 2010, Linz, Austria, pp. 53–59. Universität Duisburg-Essen (January 2010)Google Scholar
  15. 15.
    Hutchinson, J., Whittle, J., Rouncefield, M., Kristoffersen, S.: Empirical assessment of MDE in industry. In: Proc. of ICSE 2011, Hawaii, pp. 471–480 (May 2011)Google Scholar
  16. 16.
    Jézéquel, J.-M., Barais, O., Fleurey, F.: Model Driven Language Engineering with Kermeta. In: Fernandes, J.M., Lämmel, R., Visser, J., Saraiva, J. (eds.) GTTSE 2009. LNCS, vol. 6491, pp. 201–221. Springer, Heidelberg (2011)Google Scholar
  17. 17.
    Krahn, H., Rumpe, B., Völkel, S.: MontiCore: A Framework for Compositional Development of Domain Specific Languages. International Journal on Software Tools for Technology Transfer 12(5), 353–372 (2010)CrossRefGoogle Scholar
  18. 18.
    Liebig, J., Daniel, R., Apel, S.: Feature-Oriented Language Families: A Case Study. In: Proc. of VaMoS 2013, Pisa, Italy. ACM (January 2013)Google Scholar
  19. 19.
    Mernik, M., Žumer, V.: Incremental Programming Language Development. Computer Languages, Systems and Structures 31(1), 1–16 (2005)CrossRefMATHGoogle Scholar
  20. 20.
    Pohl, K., Metzger, A.: Variability Management in Software Product Line Engineering. In: Proc. of ICSE 2006, Shanghai, China, pp. 1049–1050. ACM (May 2006)Google Scholar
  21. 21.
    Rabiser, R., Grünbacher, P., Dhungana, D.: Requirements for Product Derivation Support: Results from a Systematic Literature Review and an Expert Survey. Journal of Information and Software Technology 52(3), 324–346 (2010)CrossRefGoogle Scholar
  22. 22.
    van Deursen, A., Klint, P.: Domain-Specific Language Design Requires Feature Descriptions. Journal of Computing and Information Technolog 10(1), 1–17 (2002)CrossRefMATHGoogle Scholar
  23. 23.
    van Wyk, E., Bodin, D., Gao, J., Krishnan, L.: Silver: An Extensible Attribute Grammar System. Science of Computer Programming 75(1-2), 39–54 (2010)MathSciNetCrossRefMATHGoogle Scholar
  24. 24.
    Van Wyk, E., de Moor, O., Backhouse, K., Kwiatkowski, P.: Forwarding in Attribute Grammars for Modular Language Design. In: Nigel Horspool, R. (ed.) CC 2002. LNCS, vol. 2304, pp. 128–142. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  25. 25.
    Völter, M., Pech, V.: Language Modularity with the MPS Language Workbench. In: Proc. of ICSE 2012, Zürich, Switzerland, pp. 1449–1450. IEEE (June 2012)Google Scholar
  26. 26.
    P.: Wadler. The expression problem. Java-Genericity Mailing List (1998)Google Scholar
  27. 27.
    Wende, C., Thieme, N., Zschaler, S.: A Role-Based Approach towards Modular Language Engineering. In: van den Brand, M., Gašević, D., Gray, J. (eds.) SLE 2009. LNCS, vol. 5969, pp. 254–273. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  28. 28.
    White, J., Hill, J.H., Gray, J., Tambe, S., Gokhale, A.S., Schmidt, D.C.: Improving Domain-Specific Language Reuse with Software Product Line Techniques. IEEE Software 26(4), 47–53 (2009)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2013

Authors and Affiliations

  • Edoardo Vacchi
    • 1
  • Walter Cazzola
    • 1
  • Suresh Pillay
    • 2
  • Benoît Combemale
    • 2
  1. 1.Computer Science DepartmentUniversità degli Studi di MilanoItaly
  2. 2.TRISKELL (INRIA - IRISA)Université de Rennes 1France

Personalised recommendations