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.
Similar content being viewed by others
References
Biboudis, A., Inostroza, P., Storm, T.V.: Recaf: Java dialects as libraries. ACM SIGPLAN Notices 52(3), 2–13 (2017)
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
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)
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
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
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
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
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
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
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)
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
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)
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
Oliveira, B.C.d.S.: Modular visitor components. In: European Conference on Object-Oriented Programming, pp. 269–293. Springer, Berlin (2009)
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)
Torgersen, M.: The expression problem revisited. In: Odersky, M. (ed.) ECOOP 2004-Object-Oriented Programming, pp. 123–146. Springer, Berlin (2004)
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
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
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
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
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
Zenger, M., Odersky, M.: Independently extensible solutions to the expression problem. Tech. rep. (2004)
Zhang, W., Oliveira, BCdS: EVF: an extensible and expressive visitor framework for programming language reuse (artifact). DARTS 3(2), 10:1–10:2 (2017)
Author information
Authors and Affiliations
Corresponding author
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
About this article
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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-019-00772-7