Skip to main content

The Art of Bootstrapping

  • Conference paper
  • First Online:
Book cover Model-Driven Engineering and Software Development (MODELSWARD 2019)

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.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    There are also grammar-based language workbenches in addition to the metamodelling environments.

References

  1. 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

    Article  Google Scholar 

  2. 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

    Book  Google Scholar 

  3. Campagne, F.: The MPS Language Workbench, Vol. I. Fabien Campagne (2014)

    Google Scholar 

  4. D’Anjou, J., Fairbrother, S., Kehn, D., Kellerman, J., McCarthy, P.: The Java Developer’s Guide to Eclipse. Addison-Wesley, Boston (2005)

    Google Scholar 

  5. DMLA Developers: Dynamic multi-layer algebra (DMLA) official webpage. https://www.aut.bme.hu/Pages/Research/VMTS/DMLA. Accessed 12 June 2019

  6. Eclipse OCL. http://projects.eclipse.org/projects/modeling.mdt.ocl. Accessed 12 June 2019

  7. 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

    Chapter  Google Scholar 

  8. Fields, D., Saunders, S.: IntelliJ Idea In Action. Dreamtech Press, New Delhi (2006)

    Google Scholar 

  9. Fowler, M.: Language workbenches: The killer-app for domain specific languages? http://www.martinfowler.com/articles/languageWorkbench.html (2005)

  10. 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

    Chapter  Google Scholar 

  11. 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

  12. Gonzalez-Perez, C., Henderson-Sellers, B.: Metamodelling for Software Engineering. Wiley Publishing, Hoboken (2008)

    Google Scholar 

  13. Kermeta3 developers: Kermeta3 homepage: K3 - breathe life into you metamodel. http://diverse-project.github.io/k3/index.html. Accessed 12 June 2019

  14. 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

  15. 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

    Article  Google Scholar 

  16. 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

    Chapter  Google Scholar 

  17. 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

  18. Object Management Group: XML Metadata Interchange. Object Management Group (2015). https://www.omg.org/spec/XMI/About-XMI/

  19. OMG: MOF 2.5.1. specification. https://www.omg.org/spec/MOF/2.5.1/. Accessed 12 June 2019

  20. Oracle: Graalvm. https://www.graalvm.org/. Accessed 12 June 2019

  21. Oracle: Truffle GitHub. http://github.com/oracle/graal/tree/master/truffle. Accessed 12 June 2019

  22. 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

  23. 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

  24. Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework 2.0, 2nd edn. Addison-Wesley, Boston (2009). Professional

    Google Scholar 

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Andreas Prinz .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics