Abstract
Language workbenches are used to define languages using appropriate meta-languages. Meta-languages are also just languages and can, therefore, be defined using themselves. The process is called bootstrapping and is often difficult to achieve.
This paper compares four different bootstrapping solutions. The EMF environment and the Meta-Programming System (MPS) use a compiled bootstrapping for their own definition. The platforms LanguageLab and DMLA are using interpreted bootstrapping. This paper compares these kinds of bootstrapping and relates them to the definition of instantiation. Besides the structural aspects of the bootstraps, the dynamism is also elaborated. It is shown how the bootstrap is related to the execution environment. Finally, the level of changeability is also discussed. It is shown that all approaches are quite similar and provide very flexible environments.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
There are also grammar-based language workbenches in addition to the metamodelling environments.
References
Atkinson, C., Kühne, T.: Model-driven development: a metamodeling foundation. IEEE Softw. 20(5), 36–41 (2003). https://doi.org/10.1109/MS.2003.1231149
Boerger, E., Stark, R.: Abstract State Machines: A Method for High-Level System Design. Springer, Heidelberg (2003). https://doi.org/10.1007/978-3-642-18216-7
Campagne, F.: The MPS Language Workbench, Vol. I. Fabien Campagne (2014)
D’Anjou, J., Fairbrother, S., Kehn, D., Kellerman, J., McCarthy, P.: The Java Developer’s Guide to Eclipse. Addison-Wesley, Boston (2005)
DMLA Developers: Dynamic multi-layer algebra (DMLA) official webpage. https://www.aut.bme.hu/Pages/Research/VMTS/DMLA. Accessed 12 June 2019
Eclipse OCL. http://projects.eclipse.org/projects/modeling.mdt.ocl. Accessed 12 June 2019
Erdweg, S., et al.: The state of the art in language workbenches. In: Erwig, M., Paige, R.F., Van Wyk, E. (eds.) SLE 2013. LNCS, vol. 8225, pp. 197–217. Springer, Cham (2013). https://doi.org/10.1007/978-3-319-02654-1_11
Fields, D., Saunders, S.: IntelliJ Idea In Action. Dreamtech Press, New Delhi (2006)
Fowler, M.: Language workbenches: The killer-app for domain specific languages? http://www.martinfowler.com/articles/languageWorkbench.html (2005)
Gjøsæter, T., Prinz, A.: Teaching computer language handling - from compiler theory to meta-modelling. In: Fernandes, J.M., Lämmel, R., Visser, J., Saraiva, J. (eds.) GTTSE 2009. LNCS, vol. 6491, pp. 446–460. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-18023-1_14
Gjøsæter, T., Prinz, A.: Languagelab 1.1 user manual. Technical report, University of Agder (2013), http://brage.bibsys.no/xmlui/handle/11250/134943
Gonzalez-Perez, C., Henderson-Sellers, B.: Metamodelling for Software Engineering. Wiley Publishing, Hoboken (2008)
Kermeta3 developers: Kermeta3 homepage: K3 - breathe life into you metamodel. http://diverse-project.github.io/k3/index.html. Accessed 12 June 2019
Konat, G., Erdweg, S., Visser, E.: Bootstrapping domain-specific meta-languages in language workbenches. In: SIGPLAN Not, vol. 52, no. 3, pp. 47–58 (2016). https://doi.org/10.1145/3093335.2993242
Meijler, T.D., Nytun, J.P., Prinz, A., Wortmann, H.: Supporting fine-grained generative model-driven evolution. Softw. Syst. Model. 9(3), 403–424 (2010). https://doi.org/10.1007/s10270-009-0144-1
Nytun, J.P., Prinz, A., Tveit, M.S.: Automatic generation of modelling tools. In: Rensink, A., Warmer, J. (eds.) ECMDA-FA 2006. LNCS, vol. 4066, pp. 268–283. Springer, Heidelberg (2006). https://doi.org/10.1007/11787044_21
Object Management Group: Meta Object Facility (MOF) Core Specification. Object Management Group (2006). http://www.omg.org/cgi-bin/doc?formal/2006-01-01.pdf
Object Management Group: XML Metadata Interchange. Object Management Group (2015). https://www.omg.org/spec/XMI/About-XMI/
OMG: MOF 2.5.1. specification. https://www.omg.org/spec/MOF/2.5.1/. Accessed 12 June 2019
Oracle: Graalvm. https://www.graalvm.org/. Accessed 12 June 2019
Oracle: Truffle GitHub. http://github.com/oracle/graal/tree/master/truffle. Accessed 12 June 2019
Pech, V., Shatalin, A., Völter, M.: JetBrains MPS as a tool for extending java. In: Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, PPPJ 2013, pp. 165–168. ACM (2013). https://doi.org/10.1145/2500828.2500846
Prinz, A., Shatalin, A.: How to bootstrap a language workbench. In: Proceedings of the 7th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2019, Prague, Czech Republic, 20–22 February 2019, pp. 345–352 (2019). https://doi.org/10.5220/0007398203450352
Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework 2.0, 2nd edn. Addison-Wesley, Boston (2009). Professional
Stoffel, R.: Comparing language workbenches. In: MSE-seminar: Program Analysis and Transformation, pp. 18–24 (2010). http://wiki.ifs.hsr.ch/SemProgAnTr/files/ComparingLanguageWorkbenches-Roman-Stoffel-2010-12-23.pdf
Szabó, T., Voelter, M., Kolb, B., Ratiu, D., Schaetz, B.: Mbeddr: extensible languages for embedded software development. In: Proceedings of the 2014 ACM SIGAda Annual Conference on High Integrity Language Technology, HILT 2014, pp. 13–16. ACM, New York (2014). https://doi.org/10.1145/2663171.2663186
Urbán, D., Theisz, Z., Mezei, G.: Self-describing operations for multi-level meta-modeling. In: Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2018, Funchal, Madeira - Portugal, 22–24 January 2018, pp. 519–527 (2018). https://doi.org/10.5220/0006656105190527
Völter, M.: Generic tools, specific languages. Ph.D. thesis, TU Delft, Delft University of Technology (2014). http://resolver.tudelft.nl/uuid:53c8e1e0-7a4c-43ed-9426-934c0a5a6522
Ward, M.P.: Language oriented programming. In: Software-Concepts and Tools, vol. 15, no. 4, pp. 147–161 (1994) http://www.tech.dmu.ac.uk/~mward/martin/papers/middle-out-t.pdf
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Prinz, A., Mezei, G. (2020). The Art of Bootstrapping. In: Hammoudi, S., Pires, L., Selić, B. (eds) Model-Driven Engineering and Software Development. MODELSWARD 2019. Communications in Computer and Information Science, vol 1161. Springer, Cham. https://doi.org/10.1007/978-3-030-37873-8_8
Download citation
DOI: https://doi.org/10.1007/978-3-030-37873-8_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-37872-1
Online ISBN: 978-3-030-37873-8
eBook Packages: Computer ScienceComputer Science (R0)