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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Acher, M.: Domain-Specific Languages, course materials. Available at: http://mathieuacher.com/teaching/MDE/201516/DSLAndXtext.pdf
Bagge, A.H., Lämmel, R., Zaytsev, V.: Reflections on courses for software language engineering. In: MODELS Educators Symposium 2014, pp. 54–63 (2014)
Barash, M.: Introductory course on domain-specific programming languages, course materials. 2017–2020. Available at: http://dsl-course.org
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
Benson, V.M., Campagne, F.: Language workbench user interfaces for data analysis, PeerJ 3:e800 (2015)
Berger, T., Voelter, M., Jensen, H.P., Dangprasert, T., Siegmund, J.: Efficiency of projectional editing: a controlled experiment. SIGSOFT FSE 2016, pp. 763–774
Bettini, L.: Implementing Domain-Specific Languages with Xtext and Xtend, Packt Publishing (2016)
Bettini, L.: Type errors for the IDE with Xtext and Xsemantics. Open Comput. Sci. 9(1), 52–79 (2019)
Cabot, J., Tisi, M.: The MDE diploma: first international postgraduate specialization in model-driven software engineering. CS Education 2011
Campagne, F.: The MPS Language Workbench, Vol. 1. CreateSpace Independent Publishing Platform (2014)
de Souza Amorim, L.E., Visser, E.: Multi-purpose Syntax Definition with SDF3. SEFM 2020, pp. 1–23
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
Dmitriev, S.: Language Oriented Programming: The Next Programming Paradigm (2004). Available at: https://resources.jetbrains.com/storage/products/mps/docs/Language_Oriented_Programming.pdf
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
Eysholdt, M., Rupprecht, J.: Migrating a large modeling environment from XML/UML to Xtext/GMF. SPLASH/OOPSLA Companion 2010, pp. 97–104
Fowler, M.: Domain-Specific Languages. Addison-Wesley, Boston (2010)
Gronback, R.C.: Eclipse Modeling Project – A Domain-Specific Language (DSL) Toolkit. Addison-Wesley, Boston (2009)
Grune, D., Jacobs, C.J.H.: Parsing Techniques — A Practical Guide, pp. 1–643. Springer, New York (2008)
Kats, L.C.L., Visser, E.: The Spoofax language workbench: rules for declarative specification of languages and IDEs, OOPSLA 2010, pp. 444–463
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)
Kelly, S., Pohjonen, R.: Worst practices for domain-specific modeling. IEEE Softw. 26(4), 22–29 (2009)
Kelly, S., Tolvanen, J.-P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley, Hoboken (2008)
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
Konat, G., Kats, L.C.L., Wachsmuth, G., Visser, E.: Declarative Name Binding and Scope Rules SLE 2012, pp. 311–331
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
Lämmel, R.: Software Languages: Syntax, Semantics, and Metaprogramming. Springer, New York (2018)
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)
Metaborg, Concrete syntax in stratego transformations. Available at: http://www.metaborg.org/en/latest/source/langdev/meta/lang/stratego/concrete-syntax.html
Minör, S.: Interacting with structure-oriented editors. Int. J. Man Mach. Stud. 37(4), 399–418 (1992)
Pech, V.: JetBrains MPS Elementary Course, online course. Available at: https://stepik.org/course/37360/
Pech, V., Shatalin, A., Voelter, M.: JetBrains MPS as a Tool for Extending Java, PPPJ 2013, pp. 165–168
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
Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF – Eclipse Modeling Framework. Addison-Wesley, Hoboken (2008)
Voelter, M.: Fusing Modeling and Programming into Language-Oriented Programming – Our Experiences with MPS, ISoLA 1, pp. 309–339 (2018)
Voelter, M.: High-Level Structure of DSLs: Three Patterns (2017). Available at: https://languageengineering.io/high-level-structure-of-dsls-three-patterns-7375c8baa2d3
Voelter, M., Lisson, S.: Supporting Diverse Notations in MPS’ Projectional Editor. GEMOC@MoDELS 2014, pp. 7–16
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)
Voelter, M., Siegmund, J., Berger, T., Kolb, B.: Towards User-Friendly Projectional Editors. SLE 2014, pp. 41–61
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
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)
Wachsmuth, G., Konat, G.D.P., Visser, E.: Language design with the Spoofax language workbench. IEEE Softw. 31(5), 35–43 (2014)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this chapter
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)