Skip to main content

Teaching Language Engineering Using MPS

  • Chapter
  • First Online:
Domain-Specific Languages in Practice

Abstract

At universities, computer language handling is most often taught with a focus on compiler theory. However, in practical applications, domain-specific languages (DSLs) are much more important. DSLs implement model-driven technology in an understandable way, as models can be expressed easily using DSLs. One interesting domain for DSLs in this context is language handling itself, and many current tools for language handling are model-driven and based on meta-models. This chapter connects compiler theory and meta-modelling within a university course about language handling. The course features the relevant theory and uses MPS as a practical tool. We show how MPS is used in the course and discuss its suitability.

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

Access this chapter

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

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Aho, A.V., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools. Addison-Wesley Longman Publishing Co., Inc., Boston, MA (1986)

    MATH  Google Scholar 

  2. Aiken, A.: Cool: a portable project for teaching compiler construction. SIGPLAN Not. 31(7), 19–24 (1996). https://doi.org/10.1145/381841.381847

    Article  Google Scholar 

  3. Atkinson, C., Kühne, T.: Model-driven development: a metamodeling foundation. In: Software, IEEE (2003)

    Google Scholar 

  4. Bennedsen, J., Caspersen, M.E.: Model-Driven Programming, pp. 116–129. Springer, Berlin, Heidelberg (2008). http://link.springer.com/book/10.1007%2F978-3-540-77934-60

  5. Bettini, L.: Implementing Domain-Specific Languages with Xtext and Xtend. Packt Publishing, Birmingham (2013)

    Google Scholar 

  6. Bézivin, J., Gerbé, O.: Towards a precise definition of the OMG/MDA framework. In: Proceedings of ASE’01, Automated Software Engineering (2001)

    Google Scholar 

  7. Börger, E., Stärk, R.F.: Abstract state machines: a method for high-level system design and analysis. Springer-Verlag New York, Inc., Secaucus, NJ (2003)

    Book  Google Scholar 

  8. Clark, T., Sammut, P., Willans, J.S.: Applied Metamodelling: a Foundation for Language Driven Development, 3rd edn. (2015). CoRR abs/1505.00149. http://arxiv.org/abs/1505.00149

  9. Dai, N., Mandel, L., Ryman, A.: Eclipse Web Tools Platform: Developing Java Web Applications. Eclipse Series. Addison-Wesley, Boston (2007)

    Google Scholar 

  10. Dmitriev, S.: Language oriented programming: the next programming paradigm. JetBrains onBoard 1(2) (2004)

    Google Scholar 

  11. Ehrig, H., Mahr, B.: Fundamentals of Algebraic Specification 1: Equations and Initial Semantics, 1st edn. Springer Publishing Company, Incorporated, Berlin, Heidelberg (2011)

    MATH  Google Scholar 

  12. 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.) Generative and Transformational Techniques in Software Engineering (GTTSE2009). Revised Papers. Lecture Notes in Computer Science, vol. 6491, pp. 446–460. Springer, New York (2009). https://doi.org/10.1007/978-3-642-18023-1_14

    Google Scholar 

  13. Gjøsæter, T., Prinz, A.: Teaching model driven language handling. ECEASST 34 (2010). https://doi.org/10.14279/tuj.eceasst.34.591

  14. Gjøsæter, T., Prinz, A.: Languagelab 1.1 user manual. Tech. rep., University of Agder (2013). http://brage.bibsys.no/xmlui/handle/11250/134943

  15. Gjøsæter, T., Isfeldt, I.F., Prinz, A.: Sudoku - a language description case study. In: Gasevic, D., Lämmel, R., Wyk, E.V. (eds.) Software Language Engineering (SLE2008). Revised Selected Papers. Lecture Notes in Computer Science, vol. 5452, pp. 305–321. Springer, New York (2008). https://doi.org/10.1007/978-3-642-00434-6_19

    Google Scholar 

  16. Gjøsæter, T., Prinz, A., Nytun, J.P.: MOF-VM: instantiation revisited. In: Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development, pp. 137–144 (2016). https://doi.org/10.5220/0005606101370144

  17. Glässer, U., Gotzhein, R., Prinz, A.: The formal semantics of SDL-2000: status and perspectives. Comput. Netw. 42(3), 343–358 (2003). https://doi.org/10.1016/S1389-1286(03)00247-0

    Article  Google Scholar 

  18. Gosling, J., Joy, B., Steele, G., Bracha, G.: Java Language Specification. The Java Series, 2nd edn. Addison-Wesley Longman Publishing Co., Inc., Boston, MA (2000)

    Google Scholar 

  19. Grimm, V., Berger, U., DeAngelis, D.L., Polhill, J.G., Giske, J., Railsback, S.F.: The ODD protocol: a review and first update. Ecol. Modell. 221(23), 2760–2768 (2010). https://doi.org/10.1016/j.ecolmodel.2010.08.019

    Article  Google Scholar 

  20. Grimm, V., Polhill, G., Touza, J.: Documenting social simulation models: The ODD protocol as a standard, pp. 117–133. Springer, Berlin, Heidelberg (2013). https://doi.org/10.1007/978-3-540-93813-2_7

  21. Guttormsen, S.M., Prinz, A., Gjøsæter, T.: Consistent projectional text editors. In: Pires, L.F., Hammoudi, S., Selic, B. (eds.) Proceedings of MODELSWARD 2017, pp. 515–522. SciTePress, Setúbal (2017). https://doi.org/10.5220/0006264505150522

    Google Scholar 

  22. Heidenreich, F., Johannes, J., Karol, S., Seifert, M., Wende, C.: Derivation and refinement of textual syntax for models. In: Paige, R.F., Hartman, A., Rensink, A. (eds.) Model Driven Architecture - Foundations and Applications, pp. 114–129. Springer, Berlin Heidelberg (2009)

    Chapter  Google Scholar 

  23. International Telecommunication Union: Z.100 Series, Specification and Description Language SDL. Tech. rep., International Telecommunication Union (2011)

    Google Scholar 

  24. JetBrains: MPS meta programming system. https://www.jetbrains.com/mps/

  25. Kelly, S., Tolvanen, J.P.: Domain-Specific Modeling. Wiley & Sons, Inc., Hoboken, NJ (2007)

    Google Scholar 

  26. Kleppe, A.: A language description is more than a metamodel (2007). This paper is published through a website (megaplanet.org) only. No paper copy available.; 4th International Workshop on Software Language Engineering, ATEM 2007

    Google Scholar 

  27. Kleppe, A., Warmer, J.: MDA Explained. Addison-Wesley, Boston (2003)

    Google Scholar 

  28. Klint, P., van der Storm, T., Vinju, J.: Easy meta-programming with Rascal. In: Proceedings of GTTSE’09, pp. 222–289. Springer, Berlin, Heidelberg (2011)

    Google Scholar 

  29. Konat, G., Kats, L., Wachsmuth, G., Visser, E.: Declarative name binding and scope rules. In: Czarnecki, K., Hedin, G. (eds.) Software Language Engineering, pp. 311–331. Springer, Berlin, Heidelberg (2013)

    Chapter  Google Scholar 

  30. Madsen, O.L., Møller-Pedersen, B.: A unified approach to modeling and programming. In: Proceedings of the 13th International Conference on Model Driven Engineering Languages and Systems: Part I, MODELS’10, pp. 1–15. Springer, Berlin, Heidelberg (2010). http://dl.acm.org/citation.cfm?id=1926458.1926460

  31. Mellor, S.J., Balcer, M.: Executable UML: A Foundation for Model-Driven Architectures. Addison-Wesley Longman Publishing Co., Inc., Boston, MA (2002)

    Google Scholar 

  32. Microsoft: Getting started with domain-specific languages. https://docs.microsoft.com/de-de/visualstudio/modeling/about-domain-specific-languages?view=vs-2019

  33. Mosses, P.D.: Structural operational semantics modular structural operational semantics. J. Log. Algebr. Program. 60, 195–228 (2004). http://dx.doi.org/10.1016/j.jlap.2004.03.008

    Article  MathSciNet  Google Scholar 

  34. Mu, L., Gjøsæter, T., Prinz, A., Tveit, M.S.: Specification of modelling languages in a flexible meta-model architecture. In: Software Architecture, 4th European Conference, ECSA 2010, Copenhagen, August 23–26, 2010. Companion Volume, pp. 302–308 (2010). https://doi.org/10.1145/1842752.1842807

  35. Nytun, J.P., Prinz, A., Tveit, M.S.: Automatic generation of modelling tools. In: Rensink, A., Warmer, J. (eds.) Proceedings of ECMDA-FA 2006. Lecture Notes in Computer Science, vol. 4066, pp. 268–283. Springer, New York (2006). https://doi.org/10.1007/11787044_21

    Google Scholar 

  36. OMG Editor: Meta Object Facility (MOF) 2.0 Query/View/Transformation Specification, Version 1.1. Tech. rep., Object Management Group (2011). http://www.omg.org/spec/QVT/1.1/

  37. OMG Editor: Unified Modeling Language: Infrastructure version 2.4.1 (OMG Document formal/2011-08-05). OMG Document. Published by Object Management Group, http://www.omg.org (2011)

  38. OMG Editor: Meta Object Facility (MOF). Tech. rep., Object Management Group (2016). https://www.omg.org/spec/MOF

  39. Pech, V., Shatalin, A., Völter, M.: JetBrains MPS as a tool for extending Java. In: Proceedings of the Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, PPPJ ’13, pp. 165–168. ACM, New York (2013). https://doi.org/10.1145/2500828.2500846

  40. Plotkin, G.D.: A structural approach to operational semantics. Tech. Rep. DAIMI FN-19, Aarhus University (1981). http://opac.inria.fr/record=b1049300

  41. Prinz, A., Mezei, G.: The art of bootstrapping. In: Hammoudi, S., Pires, L.F., Selic, B. (eds.) MODELSWARD 2019, Revised Selected Papers. Communications in Computer and Information Science, vol. 1161, pp. 182–200. Springer, New York (2019). https://doi.org/10.1007/978-3-030-37873-8_8

    Google Scholar 

  42. Prinz, A., Shatalin, A.: How to bootstrap a language workbench. In: Hammoudi, S., Pires, L.F., Selic, B. (eds.) Proceedings of MODELSWARD 2019, pp. 345–352. SciTePress, Setúbal (2019). https://doi.org/10.5220/0007398203470354

    Google Scholar 

  43. Prinz, A., Scheidgen, M., Tveit, M.S.: A model-based standard for SDL. In: Gaudin, E., Najm, E., Reed, R. (eds.) Proceedings of SDL 2007: Design for Dependable Systems. Lecture Notes in Computer Science, vol. 4745, pp. 1–18. Springer, New York (2007). https://doi.org/10.1007/978-3-540-74984-4_1

    Chapter  Google Scholar 

  44. Prinz, A., Møller-Pedersen, B., Fischer, J.: Object-oriented operational semantics. In: Proceedings of SAM 2016, LNCS 9959. Springer, Berlin, Heidelberg (2016)

    Google Scholar 

  45. Roşu, G., Şerbănuţă, T.F.: An overview of the K semantic framework. J. Log. Algebr. Program. 79(6), 397–434 (2010). https://doi.org/10.1016/j.jlap.2010.03.012

    Article  MathSciNet  Google Scholar 

  46. Sadilek, D.A., Wachsmuth, G.: Using grammarware languages to define operational semantics of modelled languages. In: Oriol, M., Meyer, B. (eds.) Objects, Components, Models and Patterns, TOOLS EUROPE 2009. Proceedings, Lecture Notes in Business Information Processing, vol. 33, pp. 348–356. Springer, New York (2009). https://doi.org/10.1007/978-3-642-02571-6_20

    Google Scholar 

  47. Scheidgen, M.: Textual Editing Framework (2008). Accessed 14 April 2020. http://www2.informatik.hu-berlin.de/sam/meta-tools/tef/documentation.html

  48. Scheidgen, M., Fischer, J.: Human Comprehensible and Machine Processable Specifications of Operational Semantics, pp. 157–171. Springer, Berlin, Heidelberg (2007). https://doi.org/10.1007/978-3-540-72901-3_12

  49. Sethi, R.: Programming Languages: Concepts and Constructs. Addison-Wesley Longman Publishing Co., Inc., Boston (1989)

    MATH  Google Scholar 

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

    Google Scholar 

  51. Şutîi, A.M., van den Brand, M., Verhoeff, T.: Exploration of modularity and reusability of domain-specific languages: an expression DSL in metamod. Comput. Lang. Syst. Struct. 51, 48–70 (2018). https://doi.org/10.1016/j.cl.2017.07.004. http://www.sciencedirect.com/science/article/pii/S1477842417300404

  52. Szabó, T., Völter, M., Kolb, B., Ratiu, D., Schaetz, B.: mbeddr: extensible languages for embedded software development. In: Proceedings of the Conference on High Integrity Language Technology, HILT ’14, pp. 13–16. ACM, New York (2014). https://doi.org/10.1145/2663171.2663186

  53. Voelter, M., Benz, S., Dietrich, C., Engelmann, B., Helander, M., Kats, L.C.L., Visser, E., Wachsmuth, G.: DSL Engineering - Designing, Implementing and Using Domain-Specific Languages. dslbook.org (2013)

    Google Scholar 

  54. Völter, M.: From programming to modeling - and back again. IEEE Software 28(06), 20–25 (2011). http://dx.doi.org/10.1109/MS.2011.139

    Article  Google Scholar 

  55. Völter, M., Szabó, T., Lisson, S., Kolb, B., Erdweg, S., Berger, T.: Efficient development of consistent projectional editors using grammar cells. In: Proceedings of Conference on Software Language Engineering, SLE 2016, pp. 28–40. Association for Computing Machinery, New York (2016). https://doi.org/10.1145/2997364.2997365

  56. Warmer, J., Kleppe, A.: The Object Constraint Language: Getting Your Models Ready for MDA, 2nd edn. Addison-Wesley Longman Publishing Co., Inc., Boston (2003)

    Google Scholar 

  57. Xanthopoulou, T.D., Prinz, A., Shults, F.L.: Generating executable code from high-level social or socio-ecological model descriptions. In: i Casas, P.F., Sancho, M., Sherratt, E. (eds.) System Analysis and Modeling Conference, SAM 2019, Proceedings. Lecture Notes in Computer Science, vol. 11753, pp. 150–162. Springer, New York (2019). https://doi.org/10.1007/978-3-030-30690-8_9

Download references

Acknowledgements

The course and the work on the teaching setup would not have been possible without my PhD students Themis Dimitra Xanthopoulou, Renée Schulz, Vimala Nunavath, Terje Gjøsæter, Trinh Hoang Nguyen, Liping Mu, and Merete Skjelten Tveit.

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

© 2021 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Prinz, A. (2021). Teaching Language Engineering Using MPS. In: Bucchiarone, A., Cicchetti, A., Ciccozzi, F., Pierantonio, A. (eds) Domain-Specific Languages in Practice. Springer, Cham. https://doi.org/10.1007/978-3-030-73758-0_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-73758-0_11

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-73757-3

  • Online ISBN: 978-3-030-73758-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics