Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3486608.3486907acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Vision: the next 700 language workbenches

Published: 22 November 2021 Publication History

Abstract

Language workbenches (LWBs) are tools to define software languages together with tailored Integrated Development Environments for them. A comprehensive review of language workbenches by Erdweg et al. (Comput. Lang. Syst. Struct. 44, 2015) presented a feature model of functionality of LWBs from the point of view of "languages that can be defined with a LWB, and not the definition mechanism of the LWB itself". This vision paper discusses possible functionality of LWBs with regard to language definition mechanisms. We have identified five groups of such functionality, related to: metadefinitions, metamodifications, metaprocess, LWB itself, and programs written in languages defined in a LWB. We design one of the features ("ability to define dependencies between language concerns") based on our vision.

Supplementary Material

Auxiliary Presentation Video (splashws21slemain-p24-p-video.mp4)
Language workbenches (LWBs) are tools to define software languages together with tailored Integrated Development Environments for them. A comprehensive review of language workbenches by Erdweg et al. (Comput. Lang. Syst. Struct. 44, 2015) presented a feature model of functionality of LWBs from the point of view of "languages that can be defined with a LWB, and not the definition mechanism of the LWB itself". This vision paper discusses possible functionality of LWBs with regard to language definition mechanisms. We have identified five groups of such functionality, related to: metadefinitions, metamodifications, metaprocess, LWB itself, and programs written in languages defined in a LWB. We design one of the features ("ability to define dependencies between language concerns") based on our vision.

References

[1]
U. Aß mann, S. Zschaler, and G. Wagner. 2006. Ontologies, Meta-models, and the Model-Driven Paradigm. In Ontologies for Software Engineering and Software Technology. Springer, 249–273.
[2]
A. Bagge and M. Haveraaen. 2010. Interfacing Concepts: Why Declaration Style Shouldn’t Matter. Electron. Notes Theor. Comput. Sci., 253, 7 (2010), 37–50.
[3]
M. Barash. 2021. Towards a Spreadsheet-Based Language Workbench. In MODELS’21 Companion.
[4]
D. Bork, D. Karagiannis, and B. Pittl. 2020. A survey of modeling language specification techniques. Inf. Syst., 87 (2020).
[5]
A. Boronat and J. Meseguer. 2010. An algebraic semantics for MOF. Formal Aspects Comput., 22, 3-4 (2010), 269–296.
[6]
A. Brogi, S. Contiero, and F. Turini. 1998. The Use of Renaming in Composing General Programs. LNCS, Vol. 1559. Springer, 124–142.
[7]
J. Bézivin, G. Hillairet, F. Jouault, W. Piers, and I. Kurtev. 2005. Bridging the MS/DSL Tools and the Eclipse Modeling Framework. In OOPSLA.
[8]
F. Campagne. 2014. The MPS Language Workbench, Vol. 1.
[9]
M. Cimini. 2018. Languages as first-class citizens (vision paper). In SLE 2018. ACM, 65–69.
[10]
T. Clark, A. Evans, and S. Kent. 2001. The Metamodelling Language Calculus: Foundation Semantics for UML. In FASE’01 (LNCS, Vol. 2029).
[11]
B. Combemale. 2015. Towards Language-Oriented Modeling.
[12]
B. Combemale, J. Kienzle, G. Mussbacher, O. Barais, E. Bousse, W. Cazzola, P. Collet, T. Degueule, R. Heinrich, J.-M. Jézéquel, M. Leduc, T. Mayerhofer, S. Mosser, M. Schöttle, M. Strittmatter, and A. Wortmann. 2018. Concern-oriented language development (COLD): Fostering reuse in language engineering. Comput. Lang. Syst. Struct., 54 (2018).
[13]
S. Creff, J. Champeau, A. Monégier, and J.-M. Jézéquel. 2012. Relationships Formalization for Model-Based Product Lines. In APSEC.
[14]
M. Dalibor, N. Jansen, J. Kästle, B. Rumpe, D. Schmalzing, L. Wachtmeister, and A. Wortmann. 2019. Mind the gap: lessons learned from translating grammars between MontiCore and Xtext. In DSM 2019.
[15]
J. de Lara and E. Guerra. 2010. Generic Meta-modelling with Concepts, Templates and Mixin Layers. In MoDELS 2010 (LNCS, Vol. 6394).
[16]
T. Degueule, B. Combemale, and J.-M. Jézéquel. 2017. On Language Interfaces. In Present and Ulterior Software Engineering. Springer.
[17]
U. Dekel and Y. Gil. 2003. Revealing Class Structure with Concept Lattices. In WCRE 2003. IEEE Computer Society, 353–365.
[18]
S. Erdweg, P. G. Giarrusso, and T. Rendel. 2012. Language composition untangled. In LDTA ’12. ACM, 7.
[19]
S. Erdweg, T. van der Storm, M. Völter, L. Tratt, R. Bosman, W. R. Cook, A. Gerritsen, A. Hulshout, S. Kelly, A. Loh, G. D. P. Konat, P. J. Molina, M. Palatnik, R. Pohjonen, E. Schindler, K. Schindler, R. Solmi, V. A. Vergu, E. Visser, K. van der Vlist, G. Wachsmuth, and J. van der Woning. 2015. Evaluating and comparing language workbenches: Existing results and benchmarks for the future. Comput. Lang. Syst. Struct., 44 (2015), 24–47.
[20]
J. Fabry, R. Robbes, and M. Denker. 2014. DIE: A Domain Specific Aspect Language for IDE Events. J. Univers. Comput. Sci., 20, 2 (2014).
[21]
J.-R. Falleri, M Huchard, and C. Nebut. 2008. A Generic Approach for Class Model Normalization. In ASE 2008. IEEE Computer Society.
[22]
R. B. France and B. Rumpe. 2007. Model-driven Development of Complex Software: A Research Roadmap. In FOSE 2007. IEEE, 37–54.
[23]
J. A. Goguen and R. M. Burstall. 1992. Institutions: Abstract Model Theory for Specification and Programming. J. ACM, 39, 1 (1992).
[24]
T. R. G. Green and M. Petre. 1996. Usability Analysis of Visual Programming Environments: A ’Cognitive Dimensions’ Framework. J. Vis. Lang. Comput., 7, 2 (1996), 131–174.
[25]
S. Grewe, S. Erdweg, A. Pacak, M. Raulf, and M. Mezini. 2018. Exploration of language specifications by compilation to first-order logic. Sci. Comput. Program., 155 (2018), 146–172.
[26]
H. Grönniger, H. Krahn, B. Rumpe, M. Schindler, and S. Völkel. 2008. MontiCore: a framework for the development of textual domain specific languages. In ICSE 2008. ACM, 925–926.
[27]
A. Hadas and D. H. Lorenz. 2015. A language workbench for implementing your favorite extension to AspectJ. In MODULARITY 2015.
[28]
M. Haveraaen and M. Roggenbach. 2020. Specifying with syntactic theory functors. J. Log. Algebraic Methods Program., 113 (2020), 100543.
[29]
A. Sánchez-Barbudo Herrera, E. D. Willink, and R. F. Paige. 2016. A Domain Specific Transformation Language to Bridge Concrete and Abstract Syntax. In ICMT@STAF 2016 (LNCS, Vol. 9765). Springer.
[30]
A. Hessellund and A. Wasowski. 2008. Interfaces and Metainterfaces for Models and Metamodels. In MoDELS 2008 (LNCS, Vol. 5301).
[31]
K. Hölldobler, B. Rumpe, and A. Wortmann. 2018. Software language engineering in the large: towards composing and deriving languages. Comput. Lang. Syst. Struct., 54 (2018), 386–405.
[32]
A. Iung, J. Carbonell, L. Marchezan, E. Macedo Rodrigues, M. Bernardino, F. Paulo Basso, and B. Medeiros. 2020. Systematic mapping study on domain-specific language development tools. Empir. Softw. Eng., 25, 5 (2020), 4205–4249.
[33]
B. Jacobs. 1995. Objects and Classes, Co-Algebraically. Kluwer Academic Publishers, 83–103.
[34]
P. Jeanjean, B. Combemale, and O. Barais. 2021. IDE as Code: Reifying Language Protocols as First-Class Citizens. In ISEC 2021. ACM.
[35]
L. C. L. Kats and E. Visser. 2010. The Spoofax language workbench: rules for declarative specification of languages and IDEs. In OOPSLA.
[36]
S. Kelly. 2013. Empirical comparison of language workbenches. In DSM@SPLASH 2013. ACM, 33–38.
[37]
S. Kelly and J.-P. Tolvanen. 2008. Domain-Specific Modeling. Wiley.
[38]
A. Kleppe. 2008. Software Language Engineering. Addison-Wesley.
[39]
A. Kleppe and J. Warmer. [n. d.]. ProjectIt. http://www.projectit.org
[40]
P. Klint, A. T. Kooiker, and J. J. Vinju. 2008. Language Parametric Module Management for IDEs. Electron. Notes Theor. Comput. Sci., 203, 2 (2008), 3–19.
[41]
G. Konat, S. Erdweg, and E. Visser. 2016. Bootstrapping domain-specific meta-languages in language workbenches. In GPCE 2016. ACM, 47–58.
[42]
A. Kornstädt and E. Reiswich. 2010. Composing Systems with Eclipse Rich Client Platform Plug-Ins. IEEE Softw., 27, 6 (2010), 78–81.
[43]
G. Kotopoulos, F. Kazasis, and S. Christodoulakis. 2007. Querying MOF Repositories: The Design and Implementation of the Query Metamodel Language (QML). IEEE.
[44]
R. T. Lindeman, L. C. L. Kats, and E. Visser. 2011. Declaratively defining domain-specific language debuggers. In GPCE 2011. ACM, 127–136.
[45]
D. H. Lorenz and B. Rosenan. 2011. Cedalion: a language for language oriented programming. In SPLASH 2011. ACM, 733–752.
[46]
B. Merkle. 2010. Textual modeling tools: overview and comparison of language workbenches. In SPLASH/OOPSLA 2010. ACM, 139–148.
[47]
P. Neubauer, A. Bergmayr, T. Mayerhofer, J. Troya, and M. Wimmer. 2015. XMLText: from XML schema to Xtext. In SLE 2015. ACM, 71–76.
[48]
M. Ozkaya and D. Akdur. 2021. What do practitioners expect from the meta-modeling tools? A survey. J. Comput. Lang., 63 (2021), 101030.
[49]
A. Prinz and A. Shatalin. 2019. How to Bootstrap a Language Workbench. In MODELSWARD 2019. SciTePress, 345–352.
[50]
L. Renggli, T. Gîrba, and O. Nierstrasz. 2010. Embedding Languages without Breaking Tools. In ECOOP 2010 (LNCS, Vol. 6183). Springer.
[51]
V. Sousa and E. Syriani. 2015. An Expeditious Approach to Modeling IDE Interaction Design. In GEMOC+MPM@MoDELS 2015 (CEUR Workshop Proceedings, Vol. 1511). CEUR-WS.org, 52–61.
[52]
J. Steel and J.-M. Jézéquel. 2007. On model typing. Softw. Syst. Model., 6, 4 (2007), 401–413.
[53]
W. Swierstra. 2008. Data types à la carte. J. Funct.Program., 18, 4 (2008).
[54]
S. Tobin-Hochstadt, V. St-Amour, R. Culpepper, M. Flatt, and M. Felleisen. 2011. Languages as libraries. In PLDI 2011. ACM, 132–141.
[55]
J. van den Bos, M. Hills, P. Klint, T. van der Storm, and J. J. Vinju. 2011. Rascal: From Algebraic Specification to Meta-Programming. In AMMSE 2011 (EPTCS, Vol. 56). 15–32.
[56]
A. van Deursen, J. Heering, and P. Klint. 1996. Language Prototyping: An Algebraic Specification Approach. World Scientific.
[57]
E. Visser. 2014. Separation of concerns in language definition. In MODULARITY ’14. ACM, 1–2.
[58]
M. Voelter. 2013. DSL Engineering. dslbook.org.
[59]
M. Voelter, B. Kolb, T. Szabó, D. Ratiu, and A. van Deursen. 2019. Lessons learned from developing mbeddr: a case study in language engineering with MPS. Softw. Syst. Model., 18, 1 (2019), 585–630.
[60]
I. Weisemöller and A. Schürr. 2008. Formal Definition of MOF 2.0 Metamodel Components and Composition. In MoDELS 2008.
[61]
V. Zaytsev. 2012. BNF was here: what have we done about the unnecessary diversity of notation for syntactic definitions. In SAC 2012.
[62]
V. Zaytsev and R. Lämmel. 2010. A Unified Format for Language Documents. In SLE 2010 (LNCS, Vol. 6563). Springer, 206–225.

Cited By

View all
  • (2024)OIL: an industrial case study in language engineering with SpoofaxSoftware and Systems Modeling10.1007/s10270-024-01185-xOnline publication date: 3-Jun-2024

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SLE 2021: Proceedings of the 14th ACM SIGPLAN International Conference on Software Language Engineering
October 2021
176 pages
ISBN:9781450391115
DOI:10.1145/3486608
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 November 2021

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Language workbenches
  2. algebraic specifications
  3. metaprogramming
  4. software languages

Qualifiers

  • Research-article

Funding Sources

  • Norges forskningsråd

Conference

SLE '21
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)24
  • Downloads (Last 6 weeks)4
Reflects downloads up to 09 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)OIL: an industrial case study in language engineering with SpoofaxSoftware and Systems Modeling10.1007/s10270-024-01185-xOnline publication date: 3-Jun-2024

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media