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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aho, A.V., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools. Addison-Wesley Longman Publishing Co., Inc., Boston, MA (1986)
Aiken, A.: Cool: a portable project for teaching compiler construction. SIGPLAN Not. 31(7), 19–24 (1996). https://doi.org/10.1145/381841.381847
Atkinson, C., Kühne, T.: Model-driven development: a metamodeling foundation. In: Software, IEEE (2003)
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
Bettini, L.: Implementing Domain-Specific Languages with Xtext and Xtend. Packt Publishing, Birmingham (2013)
Bézivin, J., Gerbé, O.: Towards a precise definition of the OMG/MDA framework. In: Proceedings of ASE’01, Automated Software Engineering (2001)
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)
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
Dai, N., Mandel, L., Ryman, A.: Eclipse Web Tools Platform: Developing Java Web Applications. Eclipse Series. Addison-Wesley, Boston (2007)
Dmitriev, S.: Language oriented programming: the next programming paradigm. JetBrains onBoard 1(2) (2004)
Ehrig, H., Mahr, B.: Fundamentals of Algebraic Specification 1: Equations and Initial Semantics, 1st edn. Springer Publishing Company, Incorporated, Berlin, Heidelberg (2011)
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
Gjøsæter, T., Prinz, A.: Teaching model driven language handling. ECEASST 34 (2010). https://doi.org/10.14279/tuj.eceasst.34.591
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
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
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
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
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)
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
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
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
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)
International Telecommunication Union: Z.100 Series, Specification and Description Language SDL. Tech. rep., International Telecommunication Union (2011)
JetBrains: MPS meta programming system. https://www.jetbrains.com/mps/
Kelly, S., Tolvanen, J.P.: Domain-Specific Modeling. Wiley & Sons, Inc., Hoboken, NJ (2007)
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
Kleppe, A., Warmer, J.: MDA Explained. Addison-Wesley, Boston (2003)
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)
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)
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
Mellor, S.J., Balcer, M.: Executable UML: A Foundation for Model-Driven Architectures. Addison-Wesley Longman Publishing Co., Inc., Boston, MA (2002)
Microsoft: Getting started with domain-specific languages. https://docs.microsoft.com/de-de/visualstudio/modeling/about-domain-specific-languages?view=vs-2019
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
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
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
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/
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)
OMG Editor: Meta Object Facility (MOF). Tech. rep., Object Management Group (2016). https://www.omg.org/spec/MOF
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
Plotkin, G.D.: A structural approach to operational semantics. Tech. Rep. DAIMI FN-19, Aarhus University (1981). http://opac.inria.fr/record=b1049300
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
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
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
Prinz, A., Møller-Pedersen, B., Fischer, J.: Object-oriented operational semantics. In: Proceedings of SAM 2016, LNCS 9959. Springer, Berlin, Heidelberg (2016)
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
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
Scheidgen, M.: Textual Editing Framework (2008). Accessed 14 April 2020. http://www2.informatik.hu-berlin.de/sam/meta-tools/tef/documentation.html
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
Sethi, R.: Programming Languages: Concepts and Constructs. Addison-Wesley Longman Publishing Co., Inc., Boston (1989)
Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework 2.0, 2nd edn. Addison-Wesley Professional, Boston (2009)
Ş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
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
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)
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
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
Warmer, J., Kleppe, A.: The Object Constraint Language: Getting Your Models Ready for MDA, 2nd edn. Addison-Wesley Longman Publishing Co., Inc., Boston (2003)
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
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
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
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)