Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

The Software Language Extension Problem

  • EXPERT’S VOICE
  • Published:
Software and Systems Modeling Aims and scope Submit manuscript

Abstract

The problem of software language extension and composition drives much of the research in Software Language Engineering (SLE). Although various solutions have already been proposed, there is still little understanding of the specific ins and outs of this problem, which hinders the comparison and evaluation of existing solutionsIn this SoSyM Expert Voice, we introduce the Language Extension Problem as a way to better qualify the scope of the challenges related to language extension and compositionThe formulation of the problem is similar to the seminal Expression Problem introduced by Wadler in the late 1990s and lifts it from the extensibility of single constructs to the extensibility of groups of constructs, i.e., software languages. We provide a comprehensive definition of the actual constraints when considering language extension and believe the Language Extension Problem will drive future research in SLE, the same way the original Expression Problem helped to understand the strengths and weaknesses of programming languages and drove much research in programming languages.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1

Similar content being viewed by others

References

  1. Biboudis, A., Inostroza, P., Storm, T.V.: Recaf: Java dialects as libraries. ACM SIGPLAN Notices 52(3), 2–13 (2017)

    Article  Google Scholar 

  2. Butting, A., Eikermann, R., Kautz, O., Rumpe, B., Wortmann, A.: Systematic composition of independent language features. J. Syst. Softw. 152, 50–69 (2019). https://doi.org/10.1016/j.jss.2019.02.026

    Article  Google Scholar 

  3. Degueule, T., Combemale, B., Blouin, A., Barais, O., Jézéquel, J.M.: Melange: A meta-language for modular and reusable development of dsls. In: Proceedings of the 2015 ACM SIGPLAN International Conference on Software Language Engineering, pp. 25–36. ACM (2015)

  4. Degueule, T., Combemale, B., Blouin, A., Barais, O., Jézéquel, J.M.: Safe model polymorphism for flexible modeling. Comput. Lang. Syst. Struct. 49, 30 (2016). https://doi.org/10.1016/j.cl.2016.09.001

    Article  Google Scholar 

  5. Erdweg, S., Giarrusso, P.G., Rendel, T.: Language composition untangled. In: A. Sloane, S. Andova (eds.) International Workshop on Language Descriptions, Tools, and Applications, LDTA ’12, Tallinn, Estonia, March 31–April 1, 2012, p. 7. ACM (2012). 10.1145/2427048.2427055

  6. Erdweg, S., Rendel, T., Kastner, C., Ostermann, K.: SugarJ: Library-based syntactic language extensibility. In: Proceedings of ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languags, and Applications (OOPSLA), pp. 391–406. ACM (2011). 10.1145/2048066.2048099

    Article  Google Scholar 

  7. Hills, M., Klint, P., van der Storm, T., Vinju, J.J.: A case of visitor versus interpreter pattern. In: J. Bishop, A. Vallecillo (eds.) Objects, Models, Components, Patterns: 49th International Conference, TOOLS 2011, Zurich, Switzerland, June 28-30, 2011. Proceedings, Lecture Notes in Computer Science, vol. 6705, pp. 228–243. Springer (2011). 10.1007/978-3-642-21952-8\_17

  8. Kaminski, T., Kramer, L., Carlson, T., Van Wyk, E.: Reliable and automatic composition of language extensions to C: The ablec extensible language framework. PACMPL 1(OOPSLA), 98:1–98:29 (2017). 10.1145/3138224

    Article  Google Scholar 

  9. Kaminski, T., Van Wyk, E.: Modular well-definedness analysis for attribute grammars. In: Proceedings of the 5th International Conference on Software Language Engineering (SLE), Lecture Notes in Computer Science, vol. 7745, pp. 352–371. Springer, Berlin (2012). 10.1007/978-3-642-36089-3\_20

    Chapter  Google Scholar 

  10. Klint, P., Van der Storm, T., Vinju, J.: Rascal: A domain specific language for source code analysis and manipulation. In: Source Code Analysis and Manipulation, 2009. SCAM’09. Ninth IEEE International Working Conference on, pp. 168–177. IEEE (2009)

  11. Leduc, M., Degueule, T., Combemale, B.: Modular language composition for the masses. In: D. Pearce, T. Mayerhofer, F. Steimann (eds.) Proceedings of the 11th ACM SIGPLAN International Conference on Software Language Engineering, SLE 2018, Boston, MA, USA, Nov 05-06, 2018, pp. 47–59. ACM (2018). 10.1145/3276604.3276622

  12. Leduc, M., Degueule, T., Combemale, B., Van der Storm, T., Barais, O.: Revisiting visitors for modular extension of executable dsmls. In: 2017 ACM/IEEE 20th International Conference on Model Driven Engineering Languages and Systems (MODELS), pp. 112–122. IEEE (2017)

  13. Mernik, M.: An object-oriented approach to language compositions for software language engineering. J. Syst. Softw. 86(9), 2451–2464 (2013). https://doi.org/10.1016/j.jss.2013.04.087

    Article  Google Scholar 

  14. Oliveira, B.C.d.S.: Modular visitor components. In: European Conference on Object-Oriented Programming, pp. 269–293. Springer, Berlin (2009)

    Google Scholar 

  15. d. S. Oliveira, B.C., Cook, W.R.: Extensibility for the masses - practical extensibility with object algebras. In: ECOOP 2012-Object-Oriented Programming: 26th European Conference, Beijing, China, June 11-16, 2012. Proceedings, pp. 2–27 (2012)

  16. Torgersen, M.: The expression problem revisited. In: Odersky, M. (ed.) ECOOP 2004-Object-Oriented Programming, pp. 123–146. Springer, Berlin (2004)

    Chapter  Google Scholar 

  17. Vacchi, E., Cazzola, W.: Neverlang: A framework for feature-oriented language development. Comput. Lang. Syst. Struct. 43, 1–40 (2015). https://doi.org/10.1016/j.cl.2015.02.001

    Article  Google Scholar 

  18. Van Wyk, E., Bodin, D., Gao, J., Krishnan, L.: Silver: an extensible attribute grammar system. Sci. Comput. Program. 75(1–2), 39–54 (2010). https://doi.org/10.1016/j.scico.2009.07.004

    Article  MathSciNet  MATH  Google Scholar 

  19. Voelter, M.: Language and IDE modularization and composition with MPS. In: Generative and Transformational Techniques in Software Engineering IV, International Summer School, GTTSE 2011, Braga, Portugal July 3-9, 2011. Revised Papers, pp. 383–430 (2011). 10.1007/978-3-642-35992-7\_11

  20. Wachsmuth, G., Konat, G.D.P., Visser, E.: Language design with the spoofax language workbench. IEEE Softw. 31(5), 35–43 (2014). https://doi.org/10.1109/MS.2014.100

    Article  Google Scholar 

  21. Wadler, P.: The expression problem (1998). http://homepages.inf.ed.ac.uk/wadler/papers/expression/expression.txt. Posted on the Java Genericity Mailing List, 12 Nov 1998

  22. Zenger, M., Odersky, M.: Independently extensible solutions to the expression problem. Tech. rep. (2004)

  23. Zhang, W., Oliveira, BCdS: EVF: an extensible and expressive visitor framework for programming language reuse (artifact). DARTS 3(2), 10:1–10:2 (2017)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Benoit Combemale.

Additional information

Communicated by Bernhard Rumpe.

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Leduc, M., Degueule, T., Van Wyk, E. et al. The Software Language Extension Problem. Softw Syst Model 19, 263–267 (2020). https://doi.org/10.1007/s10270-019-00772-7

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-019-00772-7

Keywords