Skip to main content

Teaching MPS: Experiences from Industry and Academia

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

Abstract

In this chapter, we present our experience on teaching MPS to industry professionals and university students. JetBrains has run its commercial courses on MPS both online and on-site for 19 different customers coming from 12 countries over the past 5 years, for some repetitively. The participants typically started the courses with no or little language engineering background and no experience with MPS. Although language design with MPS was the main objective of the courses, some general language engineering topics were also covered, and motivation into the domain was provided. We also report our teaching experience of a course on the implementation of domain-specific languages (DSL), given at universities in Finland, Norway, and Canada. The course, aimed at a broad audience of computer science students, covers DSL design principles and implementation techniques using three text-based language workbenches (Eclipse Xtext, Spoofax, Rascal MPL), prior to introducing MPS. By the time MPS is discussed, students have an understanding of what language implementation comprises of and are somewhat fluent in language engineering terminology. This enabled us to focus on language implementation techniques that are distinctive in MPS. We discuss in this chapter the experience we gained during these courses and the evolution of the educational approach.

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 129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.00
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 169.99
Price excludes VAT (USA)
  • Durable hardcover 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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Acher, M.: Domain-Specific Languages, course materials. Available at: http://mathieuacher.com/teaching/MDE/201516/DSLAndXtext.pdf

  2. Bagge, A.H., Lämmel, R., Zaytsev, V.: Reflections on courses for software language engineering. In: MODELS Educators Symposium 2014, pp. 54–63 (2014)

    Google Scholar 

  3. Barash, M.: Introductory course on domain-specific programming languages, course materials. 2017–2020. Available at: http://dsl-course.org

  4. Barash, M.: A tale about domain-specific languages, blog post (2018). Available at: https://medium.com/@mikhail.barash.mikbar/a-tale-about-domain-specific-languages-bde2ace22f6c

  5. Benson, V.M., Campagne, F.: Language workbench user interfaces for data analysis, PeerJ 3:e800 (2015)

    Article  Google Scholar 

  6. Berger, T., Voelter, M., Jensen, H.P., Dangprasert, T., Siegmund, J.: Efficiency of projectional editing: a controlled experiment. SIGSOFT FSE 2016, pp. 763–774

    Google Scholar 

  7. Bettini, L.: Implementing Domain-Specific Languages with Xtext and Xtend, Packt Publishing (2016)

    Google Scholar 

  8. Bettini, L.: Type errors for the IDE with Xtext and Xsemantics. Open Comput. Sci. 9(1), 52–79 (2019)

    Article  Google Scholar 

  9. Cabot, J., Tisi, M.: The MDE diploma: first international postgraduate specialization in model-driven software engineering. CS Education 2011

    Google Scholar 

  10. Campagne, F.: The MPS Language Workbench, Vol. 1. CreateSpace Independent Publishing Platform (2014)

    Google Scholar 

  11. de Souza Amorim, L.E., Visser, E.: Multi-purpose Syntax Definition with SDF3. SEFM 2020, pp. 1–23

    Google Scholar 

  12. Dingel, J.: Beyond Code: An Introduction to Model-Driven Software Development, course materials. Available at: http://research.cs.queensu.ca/home/dingel/cisc836_W20/index.html

  13. Dmitriev, S.: Language Oriented Programming: The Next Programming Paradigm (2004). Available at: https://resources.jetbrains.com/storage/products/mps/docs/Language_Oriented_Programming.pdf

  14. Efftinge, S., Eysholdt, M., Köhnlein, J., Zarnekow, S., von Massow, R., Hasselbring, W., Hanus, M.: Xbase: implementing domain-specific languages for Java, GPCE 2012, pp. 112–121

    Google Scholar 

  15. Eysholdt, M., Rupprecht, J.: Migrating a large modeling environment from XML/UML to Xtext/GMF. SPLASH/OOPSLA Companion 2010, pp. 97–104

    Google Scholar 

  16. Fowler, M.: Domain-Specific Languages. Addison-Wesley, Boston (2010)

    Google Scholar 

  17. Gronback, R.C.: Eclipse Modeling Project – A Domain-Specific Language (DSL) Toolkit. Addison-Wesley, Boston (2009)

    Google Scholar 

  18. Grune, D., Jacobs, C.J.H.: Parsing Techniques — A Practical Guide, pp. 1–643. Springer, New York (2008)

    Google Scholar 

  19. Kats, L.C.L., Visser, E.: The Spoofax language workbench: rules for declarative specification of languages and IDEs, OOPSLA 2010, pp. 444–463

    Google Scholar 

  20. Karsai, G., Krahn, H., Pinkernell, C., Rumpe, B., Schindler, M., Völkel, S.: Design guidelines for domain specific languages. In: Proceedings of the 9th OOPSLA Workshop on Domain-Specific Modeling (2009)

    Google Scholar 

  21. Kelly, S., Pohjonen, R.: Worst practices for domain-specific modeling. IEEE Softw. 26(4), 22–29 (2009)

    Article  Google Scholar 

  22. Kelly, S., Tolvanen, J.-P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley, Hoboken (2008)

    Book  Google Scholar 

  23. Klint, P., van der Storm, T., Vinju, J.J.: Rascal: a domain specific language for source code analysis and manipulation. In: SCAM 2009, pp. 168–177

    Google Scholar 

  24. Konat, G., Kats, L.C.L., Wachsmuth, G., Visser, E.: Declarative Name Binding and Scope Rules SLE 2012, pp. 311–331

    Google Scholar 

  25. Kulikov, P., Wagner, B., De George, A., Wenzel, M.: nameof expression. C# Programming Language Reference. Available at: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/nameof

  26. Lämmel, R.: Software Languages: Syntax, Semantics, and Metaprogramming. Springer, New York (2018)

    Book  Google Scholar 

  27. Maloney, J., Resnick, M., Rusk, N., Silverman, B., Eastmond, E.: The scratch programming language and environment. ACM Trans. Comput. Educ. 10(4), 16:1–16:15 (2010)

    Google Scholar 

  28. Metaborg, Concrete syntax in stratego transformations. Available at: http://www.metaborg.org/en/latest/source/langdev/meta/lang/stratego/concrete-syntax.html

  29. Minör, S.: Interacting with structure-oriented editors. Int. J. Man Mach. Stud. 37(4), 399–418 (1992)

    Article  Google Scholar 

  30. Pech, V.: JetBrains MPS Elementary Course, online course. Available at: https://stepik.org/course/37360/

  31. Pech, V., Shatalin, A., Voelter, M.: JetBrains MPS as a Tool for Extending Java, PPPJ 2013, pp. 165–168

    Google Scholar 

  32. Ratiu, D., Pech, V., Dummann, K.: Experiences with teaching MPS in industry: towards bringing domain-specific languages closer to practitioners. In: MODELS 2017, pp. 83–92

    Google Scholar 

  33. Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF – Eclipse Modeling Framework. Addison-Wesley, Hoboken (2008)

    Google Scholar 

  34. Voelter, M.: Fusing Modeling and Programming into Language-Oriented Programming – Our Experiences with MPS, ISoLA 1, pp. 309–339 (2018)

    Google Scholar 

  35. Voelter, M.: High-Level Structure of DSLs: Three Patterns (2017). Available at: https://languageengineering.io/high-level-structure-of-dsls-three-patterns-7375c8baa2d3

  36. Voelter, M., Lisson, S.: Supporting Diverse Notations in MPS’ Projectional Editor. GEMOC@MoDELS 2014, pp. 7–16

    Google Scholar 

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

    Google Scholar 

  38. Voelter, M., Siegmund, J., Berger, T., Kolb, B.: Towards User-Friendly Projectional Editors. SLE 2014, pp. 41–61

    Google Scholar 

  39. Voelter, M., Szabó, T., Lisson, S., Kolb, B., Erdweg, S., Berger, Th.: Efficient development of consistent projectional editors using grammar cells. SLE 2016, pp. 28–40

    Google Scholar 

  40. Voelter, M., Kolb, B., Szabó, T., Ratiu, D., van Deursen, A.: Lessons learned from developing mbeddr: a case study in language engineering with MPS. Softw. Syst. Model. 18(1), 585–630 (2019)

    Article  Google Scholar 

  41. Wachsmuth, G., Konat, G.D.P., Visser, E.: Language design with the Spoofax language workbench. IEEE Softw. 31(5), 35–43 (2014)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mikhail Barash .

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

Barash, M., Pech, V. (2021). Teaching MPS: Experiences from Industry and Academia. 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_10

Download citation

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

  • 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