Skip to main content
Erschienen in: Software and Systems Modeling 1/2019

09.01.2017 | Regular Paper

Lessons learned from developing mbeddr: a case study in language engineering with MPS

verfasst von: Markus Voelter, Bernd Kolb, Tamás Szabó, Daniel Ratiu, Arie van Deursen

Erschienen in: Software and Systems Modeling | Ausgabe 1/2019

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Language workbenches are touted as a promising technology to engineer languages for use in a wide range of domains, from programming to science to business. However, not many real-world case studies exist that evaluate the suitability of language workbench technology for this task. This paper contains such a case study. In particular, we evaluate the development of mbeddr, a collection of integrated languages and language extensions built with the Jetbrains MPS language workbench. mbeddr consists of 81 languages, with their IDE support, 34 of them C extensions. The mbeddr languages use a wide variety of notations—textual, tabular, symbolic and graphical—and the C extensions are modular; new extensions can be added without changing the existing implementation of C. mbeddr’s development has spanned 10 person-years so far, and the tool is used in practice and continues to be developed. This makes mbeddr a meaningful case study of non-trivial size and complexity. The evaluation is centered around five research questions: language modularity, notational freedom and projectional editing, mechanisms for managing complexity, performance and scalability issues and the consequences for the development process. We draw generally positive conclusions; language engineering with MPS is ready for real-world use. However, we also identify a number of areas for improvement in the state of the art in language engineering in general, and in MPS in particular.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Fußnoten
3
This and other statements about Jetbrains’ activities are based on our regular communication with the MPS team at Jetbrains (see Sect. 5.2) and used with their permission.
 
4
Technically, MPS’ abstract syntax is a graph because it contains cross-references in addition to the containment structures of a tree. We call it AST nonetheless.
 
5
Watch this video https://​www.​youtube.​com/​watch?​v=​iN2PflvXUqQ to gain a better understanding of projectional editing.
 
6
Essentially, they make the user decide in situations where a parser would encounter an ambiguity.
 
7
We have used the MPS projectional editor also with users from business domains who do not have years of exposure to textual IDEs; for them, a projectional editor is much easier to get used to.
 
9
For Eclipse users: the project corresponds to the Eclipse Workspace, the modules correspond to projects, and models correspond to files or packages.
 
10
The set of aspects used to define a language includes transformations. A language that contains only transformations for concepts defined in another language is still called a language in MPS.
 
11
As long as MPS uses textual notations for language definition, we show the example code as text; when non-textual notations are used, such as in editor definitions, we use screenshots.
 
12
A concept can have several editors; they can be switched for each program.
 
13
For historic reasons, MPS uses %child% to enclose child cells in editors.
 
14
Strictly speaking, some of this behavior is defined in Actions aspect. However, since the Editor and Actions aspects will be merged in the upcoming version of MPS, we already treat them as one in this tutorial.
 
15
Remember that a projectional editor only lets the user enter programs that are structurally valid.
 
16
In traditional, parser-based language definitions, the type system is typically considered to also include the name-based resolution of references. However, in MPS, references are not encoded by name resolution rules, but by actual references to the unique ID of the target node that are established upon entering the reference (by code completion or plain typing).
 
17
It is also possible to use a pattern that is matched against the tree, roughly similar to tree pattern matching in Scala [62] or Stratego [94].
 
18
The expression is not visible in Fig. 4 because it is shown in the macro’s inspector, an additional IDE window that shows details about the node currently selected in the main editor.
 
19
The first two years of mbeddr development happened as part of the LWES research project, a KMU Innovativ project funded by BMBF under FKZ 01/S11014. The participating companies were itemis, fortiss, SICK, Lear and BMW Car IT.
 
21
This is not the number of lines generated from the DSL code, but an equivalent, linearized, textual representation of the program nodes in the MPS AST.
 
22
Note that debugging and build support are outside core; counting all of CDT’s non-test *.java files result in roughly 1.4 million lines.
 
23
Despite the fact that it is called mbeddr.platform, its contents have been developed during several MPS-based projects, not just mbeddr.
 
24
There are restrictions. For example, in an editor one cannot call super to delegate to the editor of the base concept.
 
25
Another way of solving this issue is to make functions and runnables implement a common interface, and then make the tracing language insert trace points to all nodes that implement that interface; however, this would lead to the need to (retroactively) introduce this new interface, requiring invasive changes to the components language. This is also not desirable.
 
26
A map associated with each node.
 
27
Traces are pointers from program nodes to requirements to help with quality assurance [108].
 
28
The mechanism is the same as for annotations. They are also stored in a special child collection, and the editor is aware of this collection when projecting the tree.
 
29
Typically, the language syntax is specified using a grammar, which is an aspect-specific DSL. In addition, some tools provide DSLs for code generation or model transformation. But all other aspects are implemented using the same language.
 
30
The same problem occurs in the context of verification: lifting the low-level counterexamples generated by a verification tool to the level of the DSLs in MPS also requires this reverse mapping.
 
31
Note that, because one cannot write code before the language structure and syntax are implemented, MPS does not support test-first development for language syntax. However, it supports test-driven development, where, for every piece of language syntax one defines, one can immediately write a test case. For other kinds of tests (type checks, semantics), a test-first approach is feasible and has been used occasionally by the mbeddr team.
 
33
In a projectional editor like MPS, only changes to the language structure may lead to the need to migrate models; a change in concrete can simply be achieved by changing the projection rules; the new notation is rendered as soon as users open the program with the updated language.
 
36
The developers, Solmi and Persiani, have talked about commercial projects in finance with the authors of this paper.
 
Literatur
7.
8.
Zurück zum Zitat Backes, M., Hriţcu, C., Tarrach, T.: Automatically verifying typing constraints for a data processing language. In: Certified Programs and Proofs. Springer (2011) Backes, M., Hriţcu, C., Tarrach, T.: Automatically verifying typing constraints for a data processing language. In: Certified Programs and Proofs. Springer (2011)
9.
Zurück zum Zitat Barroca, B., Lúcio, L., Amaral, V., Félix, R., Sousa, V.: DSLtrans: a turing incomplete transformation language. In: Software Language Engineering. Springer, pp. 296–305 (2011) Barroca, B., Lúcio, L., Amaral, V., Félix, R., Sousa, V.: DSLtrans: a turing incomplete transformation language. In: Software Language Engineering. Springer, pp. 296–305 (2011)
10.
Zurück zum Zitat Basten, B., van den Bos, J., Hills, M., Klint, P., Lankamp, A., Lisser, B., van der Ploeg, A., van der Storm, T., Vinju, J.: Modular language implementation in Rascal—experience report. Sci. Comput. Program. 114, 7–19 (2015)CrossRef Basten, B., van den Bos, J., Hills, M., Klint, P., Lankamp, A., Lisser, B., van der Ploeg, A., van der Storm, T., Vinju, J.: Modular language implementation in Rascal—experience report. Sci. Comput. Program. 114, 7–19 (2015)CrossRef
11.
Zurück zum Zitat Bettini, L.: Implementing Domain-Specific Languages with Xtext and Xtend. Packt Publishing Ltd, Birmingham (2013) Bettini, L.: Implementing Domain-Specific Languages with Xtext and Xtend. Packt Publishing Ltd, Birmingham (2013)
12.
Zurück zum Zitat Bierman, G.M., Gordon, A.D., Hriţcu, C., Langworthy, D.: Semantic subtyping with an SMT solver. In: ACM Sigplan Notices, vol. 45. ACM, pp. 105–116 (2010) Bierman, G.M., Gordon, A.D., Hriţcu, C., Langworthy, D.: Semantic subtyping with an SMT solver. In: ACM Sigplan Notices, vol. 45. ACM, pp. 105–116 (2010)
13.
Zurück zum Zitat Broy, M., Kirstan, S., Krcmar, H., Schätz, B.: What is the benefit of a model-based design of embedded software systems in the car industry? In: Rech, J., Bunse, C. (eds.) Emerging Technologies for the Evolution and Maintenance of Software Models. IGI Global, Hershey (2011) Broy, M., Kirstan, S., Krcmar, H., Schätz, B.: What is the benefit of a model-based design of embedded software systems in the car industry? In: Rech, J., Bunse, C. (eds.) Emerging Technologies for the Evolution and Maintenance of Software Models. IGI Global, Hershey (2011)
14.
Zurück zum Zitat Campagne, F.: The MPS Language Workbench, vol. 1. Fabien Campagne, New York (2014) Campagne, F.: The MPS Language Workbench, vol. 1. Fabien Campagne, New York (2014)
15.
Zurück zum Zitat Chiş, A., Gîrba, T., Nierstrasz, O.: The moldable debugger: a framework for developing domain-specific debuggers. In: International Conference on Software Language Engineering. Springer, pp. 102–121 (2014) Chiş, A., Gîrba, T., Nierstrasz, O.: The moldable debugger: a framework for developing domain-specific debuggers. In: International Conference on Software Language Engineering. Springer, pp. 102–121 (2014)
17.
Zurück zum Zitat Cimatti, A., Clarke, E., Giunchiglia, E., Giunchiglia, F., Pistore, M., Roveri, M., Sebastiani, R., Tacchella, A.: NUSMV 2: an opensource tool for symbolic model checking. In: Computer Aided Verification. Springer, pp. 359–364 (2002) Cimatti, A., Clarke, E., Giunchiglia, E., Giunchiglia, F., Pistore, M., Roveri, M., Sebastiani, R., Tacchella, A.: NUSMV 2: an opensource tool for symbolic model checking. In: Computer Aided Verification. Springer, pp. 359–364 (2002)
18.
Zurück zum Zitat Clark, T.: A declarative approach to heterogeneous multi-mode modelling languages. In: Proceedings of the GEMOC Workshop (2014) Clark, T.: A declarative approach to heterogeneous multi-mode modelling languages. In: Proceedings of the GEMOC Workshop (2014)
19.
Zurück zum Zitat Clarke, E., Kroening, D., Lerda, F.: A tool for checking ANSI-C programs. In: Tools and Algorithms for the Construction and Analysis of Systems. Lecture Notes in Computer Science, vol. 2988. Springer (2004) Clarke, E., Kroening, D., Lerda, F.: A tool for checking ANSI-C programs. In: Tools and Algorithms for the Construction and Analysis of Systems. Lecture Notes in Computer Science, vol. 2988. Springer (2004)
20.
Zurück zum Zitat Conrad, M., Sandmann, G., Munier, P.: Software tool qualification according to ISO 26262. Technical report, SAE (2011) Conrad, M., Sandmann, G., Munier, P.: Software tool qualification according to ISO 26262. Technical report, SAE (2011)
21.
Zurück zum Zitat Czarnecki, K., Antkiewicz, M.: Mapping features to models: a template approach based on superimposed variants. In: Generative Programming and Component Engineering. Springer, pp. 422–437 (2005) Czarnecki, K., Antkiewicz, M.: Mapping features to models: a template approach based on superimposed variants. In: Generative Programming and Component Engineering. Springer, pp. 422–437 (2005)
22.
Zurück zum Zitat Czarnecki, K., Eisenecker, U.W.: Generative Programming: Methods, Tools, and Applications. ACM Press/Addison-Wesley, New York (2000) Czarnecki, K., Eisenecker, U.W.: Generative Programming: Methods, Tools, and Applications. ACM Press/Addison-Wesley, New York (2000)
23.
Zurück zum Zitat De Moura, L., Bjørner, N.: Z3: An efficient SMT solver. In: Tools and Algorithms for the Construction and Analysis of Systems. Springer, pp. 337–340 (2008) De Moura, L., Bjørner, N.: Z3: An efficient SMT solver. In: Tools and Algorithms for the Construction and Analysis of Systems. Springer, pp. 337–340 (2008)
24.
Zurück zum Zitat Dmitriev, S.: Language oriented programming: the next programming paradigm. JetBrains onBoard 1(2), 1–13 (2004) Dmitriev, S.: Language oriented programming: the next programming paradigm. JetBrains onBoard 1(2), 1–13 (2004)
26.
Zurück zum Zitat Dybå, T., Sjøberg, D.I., Cruzes, D.S.: What works for whom, where, when, and why? On the role of context in empirical software engineering. In: Proceedings of the ACM-IEEE International Symposium on Empirical Software Engineering and Measurement (2012) Dybå, T., Sjøberg, D.I., Cruzes, D.S.: What works for whom, where, when, and why? On the role of context in empirical software engineering. In: Proceedings of the ACM-IEEE International Symposium on Empirical Software Engineering and Measurement (2012)
27.
Zurück zum Zitat Earley, J.: Ambiguity and precedence in syntax description. Acta Inform. 4(2), 183–192 (1975)CrossRefMATH Earley, J.: Ambiguity and precedence in syntax description. Acta Inform. 4(2), 183–192 (1975)CrossRefMATH
28.
Zurück zum Zitat Ellison, C., Rosu, G.: An executable formal semantics of C with applications. In: ACM SIGPLAN Notices, vol. 47. ACM, pp. 533–544 (2012) Ellison, C., Rosu, G.: An executable formal semantics of C with applications. In: ACM SIGPLAN Notices, vol. 47. ACM, pp. 533–544 (2012)
29.
Zurück zum Zitat Erdweg, S., Kats, L.C., Rendel, T., Kästner, C., Ostermann, K., Visser, E.: Growing a language environment with editor libraries. In: Proceedings of OOPSLA 2011, vol. 47. ACM, pp. 167–176 (2011) Erdweg, S., Kats, L.C., Rendel, T., Kästner, C., Ostermann, K., Visser, E.: Growing a language environment with editor libraries. In: Proceedings of OOPSLA 2011, vol. 47. ACM, pp. 167–176 (2011)
30.
Zurück zum Zitat Erdweg, S., Giarrusso, P.G., Rendel, T.: Language composition untangled. In: Proceedings of LDTA (2012) Erdweg, S., Giarrusso, P.G., Rendel, T.: Language composition untangled. In: Proceedings of LDTA (2012)
31.
Zurück zum Zitat Erdweg, S., Storm, T., Völter, M., et al.: The state of the art in language workbenches. In: Erwig, M., Paige, R., Wyk, E. (eds.) Software Language Engineering. LNCS, vol. 8225. Springer (2013) Erdweg, S., Storm, T., Völter, M., et al.: The state of the art in language workbenches. In: Erwig, M., Paige, R., Wyk, E. (eds.) Software Language Engineering. LNCS, vol. 8225. Springer (2013)
32.
Zurück zum Zitat Erdweg, S., van der Storm, T., Dai, Y.: Capture-avoiding and hygienic program transformations. In: European Conference on Object-Oriented Programming. Springer, pp. 489–514 (2014) Erdweg, S., van der Storm, T., Dai, Y.: Capture-avoiding and hygienic program transformations. In: European Conference on Object-Oriented Programming. Springer, pp. 489–514 (2014)
34.
Zurück zum Zitat Fowler, M., Beck, K.: Refactoring: Improving the design of existing code. Addison-Wesley Professional, Boston (1999) Fowler, M., Beck, K.: Refactoring: Improving the design of existing code. Addison-Wesley Professional, Boston (1999)
35.
Zurück zum Zitat Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Pearson Education, London (1994)MATH Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Pearson Education, London (1994)MATH
36.
Zurück zum Zitat Gray, J., Karsai, G.: An examination of DSLs for concisely representing model traversals and transformations. In: Proceedings of HICSS (2003) Gray, J., Karsai, G.: An examination of DSLs for concisely representing model traversals and transformations. In: Proceedings of HICSS (2003)
37.
Zurück zum Zitat Hathhorn, C., Ellison, C., Roşu, G.: Defining the undefinedness of c. In: ACM SIGPLAN Notices, vol. 50. ACM, pp. 336–345 (2015) Hathhorn, C., Ellison, C., Roşu, G.: Defining the undefinedness of c. In: ACM SIGPLAN Notices, vol. 50. ACM, pp. 336–345 (2015)
38.
Zurück zum Zitat Heering, J., Hendriks, P.R.H., Klint, P., Rekers, J.: The syntax definition formalism SDF—reference manual. SIGPLAN 24(11), 43–75 (1989)CrossRef Heering, J., Hendriks, P.R.H., Klint, P., Rekers, J.: The syntax definition formalism SDF—reference manual. SIGPLAN 24(11), 43–75 (1989)CrossRef
39.
Zurück zum Zitat Hermans, F., Pinzger, M., Van Deursen, A.: Domain-specific languages in practice: a user study on the success factors. In: International Conference on Model Driven Engineering Languages and Systems. Springer (2009) Hermans, F., Pinzger, M., Van Deursen, A.: Domain-specific languages in practice: a user study on the success factors. In: International Conference on Model Driven Engineering Languages and Systems. Springer (2009)
40.
Zurück zum Zitat Hillebrand, J., Reichenpfader, P., Mandic, I., Siegl, H., Peer, C.: Establishing confidence in the usage of software tools in context of ISO 26262. In: Computer Safety, Reliability, and Security. Springer, pp. 257–269 (2011) Hillebrand, J., Reichenpfader, P., Mandic, I., Siegl, H., Peer, C.: Establishing confidence in the usage of software tools in context of ISO 26262. In: Computer Safety, Reliability, and Security. Springer, pp. 257–269 (2011)
41.
Zurück zum Zitat Holzmann, G.J.: The model checker SPIN. IEEE Trans. Softw. Eng. 5, 279–295 (1997)CrossRef Holzmann, G.J.: The model checker SPIN. IEEE Trans. Softw. Eng. 5, 279–295 (1997)CrossRef
42.
Zurück zum Zitat Jimenez, M., Rosique, F., Sanchez, P., Alvarez, B., Iborra, A.: Habitation: a domain-specific language for home automation. IEEE Softw. 26(4), 30–38 (2009)CrossRef Jimenez, M., Rosique, F., Sanchez, P., Alvarez, B., Iborra, A.: Habitation: a domain-specific language for home automation. IEEE Softw. 26(4), 30–38 (2009)CrossRef
43.
Zurück zum Zitat Jones, C., Bonsignour, O.: The Economics of Software Quality. Addison-Wesley Professional, Boston (2011) Jones, C., Bonsignour, O.: The Economics of Software Quality. Addison-Wesley Professional, Boston (2011)
44.
Zurück zum Zitat Kats, L.C.L., Visser, E.: The Spoofax language workbench: rules for declarative specification of languages and IDEs. In: OOPSLA. ACM (2010) Kats, L.C.L., Visser, E.: The Spoofax language workbench: rules for declarative specification of languages and IDEs. In: OOPSLA. ACM (2010)
45.
Zurück zum Zitat Kieburtz, R.B., McKinney, L., Bell, J.M., Hook, J., Kotov, A., Lewis, J., Oliva, D.P., Sheard, T., Smith, I., Walton, L.: A software engineering experiment in software component generation. In: Proceedings ICSE (1996) Kieburtz, R.B., McKinney, L., Bell, J.M., Hook, J., Kotov, A., Lewis, J., Oliva, D.P., Sheard, T., Smith, I., Walton, L.: A software engineering experiment in software component generation. In: Proceedings ICSE (1996)
46.
Zurück zum Zitat Klint, P.: A meta-environment for generating programming environments. ACM Trans. Softw. Eng. Methodol. 2(2), 176–201 (1993)CrossRef Klint, P.: A meta-environment for generating programming environments. ACM Trans. Softw. Eng. Methodol. 2(2), 176–201 (1993)CrossRef
47.
Zurück zum Zitat Klint, P., Van Rozen, R.: Micro-machinations. In: Software Language Engineering. Springer, pp. 36–55 (2013) Klint, P., Van Rozen, R.: Micro-machinations. In: Software Language Engineering. Springer, pp. 36–55 (2013)
48.
Zurück zum Zitat Klint, P., van der Storm, T., Vinju, J.: EASY meta-programming with Rascal. In: GTTSE III. LNCS, vol. 6491. Springer (2011) Klint, P., van der Storm, T., Vinju, J.: EASY meta-programming with Rascal. In: GTTSE III. LNCS, vol. 6491. Springer (2011)
49.
Zurück zum Zitat Kosar, T., Martı, P.E., Barrientos, P.A., Mernik, M., et al.: A preliminary study on various implementation approaches of domain-specific language. Inf. Softw. Technol. 50(5), 390–405 (2008)CrossRef Kosar, T., Martı, P.E., Barrientos, P.A., Mernik, M., et al.: A preliminary study on various implementation approaches of domain-specific language. Inf. Softw. Technol. 50(5), 390–405 (2008)CrossRef
50.
Zurück zum Zitat Kosar, T., Oliveira, N., Mernik, M., Pereira, V.J.M., Črepinšek, M., Da, C.D., Henriques, R.P.: Comparing general-purpose and domain-specific languages: an empirical study. Comput. Sci. Inf. Syst. 7(2), 247–264 (2010)CrossRef Kosar, T., Oliveira, N., Mernik, M., Pereira, V.J.M., Črepinšek, M., Da, C.D., Henriques, R.P.: Comparing general-purpose and domain-specific languages: an empirical study. Comput. Sci. Inf. Syst. 7(2), 247–264 (2010)CrossRef
51.
Zurück zum Zitat Krebbers, R.: The C Standard Formalized in Coq. PhD thesis, Radboud University Nijmegen (2015) Krebbers, R.: The C Standard Formalized in Coq. PhD thesis, Radboud University Nijmegen (2015)
52.
Zurück zum Zitat Kuhn, A., Murphy, G., Thompson, C.: An exploratory study of forces and frictions affecting large-scale model-driven development. In: France, R., Kazmeier, J., Breu, R., Atkinson, C. (eds.) Model Driven Engineering Languages and Systems. LNCS, vol. 7590. Springer (2012) Kuhn, A., Murphy, G., Thompson, C.: An exploratory study of forces and frictions affecting large-scale model-driven development. In: France, R., Kazmeier, J., Breu, R., Atkinson, C. (eds.) Model Driven Engineering Languages and Systems. LNCS, vol. 7590. Springer (2012)
53.
Zurück zum Zitat Le Berre, D., Parrain, A.: The Sat4j library, release 2.2. J. Satisf. Boolean Model. Comput. 7, 59–64 (2010) Le Berre, D., Parrain, A.: The Sat4j library, release 2.2. J. Satisf. Boolean Model. Comput. 7, 59–64 (2010)
54.
Zurück zum Zitat Liebel, G., Marko, N., Tichy, M., Leitner, A., Hansson, J.: Assessing the state-of-practice of model-based engineering in the embedded systems domain. In: Proceedings of the MODELS (2014) Liebel, G., Marko, N., Tichy, M., Leitner, A., Hansson, J.: Assessing the state-of-practice of model-based engineering in the embedded systems domain. In: Proceedings of the MODELS (2014)
55.
Zurück zum Zitat Liggesmeyer, P., Trapp, M.: Trends in embedded software engineering. IEEE Softw. 26, 19–25 (2009)CrossRef Liggesmeyer, P., Trapp, M.: Trends in embedded software engineering. IEEE Softw. 26, 19–25 (2009)CrossRef
56.
Zurück zum Zitat Lussenburg, V., Van Der Storm, T., Vinju, J., Warmer, J.: Mod4j: a qualitative case study of model-driven software development. In: Model Driven Engineering Languages and Systems. Springer, pp. 346–360 (2010) Lussenburg, V., Van Der Storm, T., Vinju, J., Warmer, J.: Mod4j: a qualitative case study of model-driven software development. In: Model Driven Engineering Languages and Systems. Springer, pp. 346–360 (2010)
57.
Zurück zum Zitat Medina-Mora, R., Feiler, P.H.: An incremental programming environment. IEEE Trans. Softw. Eng. 7(5), 472–482 (1981)CrossRef Medina-Mora, R., Feiler, P.H.: An incremental programming environment. IEEE Trans. Softw. Eng. 7(5), 472–482 (1981)CrossRef
58.
Zurück zum Zitat Molotnikov, Z., Völter, M., Ratiu, D.: Automated domain-specific C verification with mbeddr. In: Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering. ACM (2014) Molotnikov, Z., Völter, M., Ratiu, D.: Automated domain-specific C verification with mbeddr. In: Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering. ACM (2014)
59.
Zurück zum Zitat Neron, P., Tolmach, A.P., Visser, E., Wachsmuth, G.: A theory of name resolution. In: Vitek, J., (ed.), 24th European Symposium on Programming, ESOP 2015. Lecture Notes in Computer Science, vol. 9032. Springer, pp. 205–231 (2015) ISBN 978-3-662-46668-1. doi:10.1007/978-3-662-46669-8_9 Neron, P., Tolmach, A.P., Visser, E., Wachsmuth, G.: A theory of name resolution. In: Vitek, J., (ed.), 24th European Symposium on Programming, ESOP 2015. Lecture Notes in Computer Science, vol. 9032. Springer, pp. 205–231 (2015) ISBN 978-3-662-46668-1. doi:10.​1007/​978-3-662-46669-8_​9
60.
Zurück zum Zitat Nichols, B., Buttlar, D., Farrell, J.: Pthreads Programming: A POSIX Standard for Better Multiprocessing. O’Reilly, Sebastopol (1996) Nichols, B., Buttlar, D., Farrell, J.: Pthreads Programming: A POSIX Standard for Better Multiprocessing. O’Reilly, Sebastopol (1996)
61.
Zurück zum Zitat Notkin, D.: The GANDALF project. J. Syst. Softw. 5(2), 91–106 (1985)CrossRef Notkin, D.: The GANDALF project. J. Syst. Softw. 5(2), 91–106 (1985)CrossRef
62.
Zurück zum Zitat Odersky, M., Spoon, L., Venners, B.: Programming in Scala. Artima, Mountain View (2008) Odersky, M., Spoon, L., Venners, B.: Programming in Scala. Artima, Mountain View (2008)
63.
Zurück zum Zitat Pavletic, D., Haßlbauer, K.: Interactive debugging for extensible languages in multi-stage transformation environments. In: 2nd International Workshop on Executable Modeling at MODELs 2016 (2016) Pavletic, D., Haßlbauer, K.: Interactive debugging for extensible languages in multi-stage transformation environments. In: 2nd International Workshop on Executable Modeling at MODELs 2016 (2016)
64.
Zurück zum Zitat Pavletic, D., Voelter, M., Raza, S.A., Kolb, B., Kehrer, T.: Extensible debugger framework for extensible languages. In: Reliable Software Technologies–Ada-Europe 2015. Springer, pp. 33–49 (2015) Pavletic, D., Voelter, M., Raza, S.A., Kolb, B., Kehrer, T.: Extensible debugger framework for extensible languages. In: Reliable Software Technologies–Ada-Europe 2015. Springer, pp. 33–49 (2015)
65.
Zurück zum Zitat Porter, S.W.: Design of a Syntax Directed Editor for PSDL. Master’s thesis, Naval Postgraduate School, Monterey, CA, USA (1988) Porter, S.W.: Design of a Syntax Directed Editor for PSDL. Master’s thesis, Naval Postgraduate School, Monterey, CA, USA (1988)
66.
Zurück zum Zitat Ratiu, D., Voelter, M.: Automated testing of DSL implementations. In: 11th IEEE/ACM International Workshop on Automation of Software Test (AST 2016) (2016) Ratiu, D., Voelter, M.: Automated testing of DSL implementations. In: 11th IEEE/ACM International Workshop on Automation of Software Test (AST 2016) (2016)
67.
Zurück zum Zitat Ratiu, D., Voelter, M., Molotnikov, Z., Schaetz, B.: Implementing modular domain specific languages and analyses. In: Proceedings of the Workshop on Model-Driven Engineering, Verification and Validation. ACM (2012) Ratiu, D., Voelter, M., Molotnikov, Z., Schaetz, B.: Implementing modular domain specific languages and analyses. In: Proceedings of the Workshop on Model-Driven Engineering, Verification and Validation. ACM (2012)
68.
Zurück zum Zitat Ratiu, D., Voelter, M., Schaetz, B., Kolb, B.: Language engineering as enabler for incrementally defined formal analyses. In: Proceedings of the Workshop on Formal Methods in Software Engineering: Rigorous and Agile Approaches (FORMSERA’2012) (2012) Ratiu, D., Voelter, M., Schaetz, B., Kolb, B.: Language engineering as enabler for incrementally defined formal analyses. In: Proceedings of the Workshop on Formal Methods in Software Engineering: Rigorous and Agile Approaches (FORMSERA’2012) (2012)
69.
Zurück zum Zitat Ratiu, D., Voelter, M., Kolb, B., Schaetz, B.: Using language engineering to lift languages and analyses at the domain level. In: Proceedings the 5th NASA Formal Methods Symposium (NFM’13) (2013) Ratiu, D., Voelter, M., Kolb, B., Schaetz, B.: Using language engineering to lift languages and analyses at the domain level. In: Proceedings the 5th NASA Formal Methods Symposium (NFM’13) (2013)
70.
Zurück zum Zitat Ratiu, D., Zeller, M., Kilian, L.: Safety.Lab: Model-based domain specific tooling for safety argumentation. In: Proceedings of the 3rd International Workshop on Assurance Cases for Software-intensive Systems (2015) Ratiu, D., Zeller, M., Kilian, L.: Safety.Lab: Model-based domain specific tooling for safety argumentation. In: Proceedings of the 3rd International Workshop on Assurance Cases for Software-intensive Systems (2015)
71.
Zurück zum Zitat Reps, T.W., Teitelbaum, T.: The Synthesizer Generator. In: First ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments. ACM (1984) Reps, T.W., Teitelbaum, T.: The Synthesizer Generator. In: First ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments. ACM (1984)
72.
73.
Zurück zum Zitat Runeson, P., Host, M., Rainer, A., Regnell, B.: Case Study Research in Software Engineering: Guidelines and Examples. Wiley, New York (2012)CrossRef Runeson, P., Host, M., Rainer, A., Regnell, B.: Case Study Research in Software Engineering: Guidelines and Examples. Wiley, New York (2012)CrossRef
74.
Zurück zum Zitat Selim, G.M., Lúcio, L., Cordy, J.R., Dingel, J., Oakes, B.J.: Specification and verification of graph-based model transformation properties. In: Graph Transformation. Springer, pp. 113–129 (2014) Selim, G.M., Lúcio, L., Cordy, J.R., Dingel, J., Oakes, B.J.: Specification and verification of graph-based model transformation properties. In: Graph Transformation. Springer, pp. 113–129 (2014)
75.
Zurück zum Zitat Simi, M., Campagne, F.: Composable languages for bioinformatics: the NYoSh experiment. PeerJ PrePrints, 1:e112v2 (2013) Simi, M., Campagne, F.: Composable languages for bioinformatics: the NYoSh experiment. PeerJ PrePrints, 1:e112v2 (2013)
76.
Zurück zum Zitat Simonyi, C.: The death of computer languages, the birth of intentional programming. In: NATO Science Committee Conference (1995) Simonyi, C.: The death of computer languages, the birth of intentional programming. In: NATO Science Committee Conference (1995)
77.
Zurück zum Zitat Simonyi, C., Christerson, M., Clifford, S.: Intentional software. SIGPLAN Not. 41(10), 451–464 (2006)CrossRef Simonyi, C., Christerson, M., Clifford, S.: Intentional software. SIGPLAN Not. 41(10), 451–464 (2006)CrossRef
78.
Zurück zum Zitat Steinberg, D., Budinsky, F., Merks, E., Paternostro, M.: EMF: Eclipse Modeling Framework. Pearson Education, London (2008) Steinberg, D., Budinsky, F., Merks, E., Paternostro, M.: EMF: Eclipse Modeling Framework. Pearson Education, London (2008)
79.
Zurück zum Zitat Sullivan, K.J., Griswold, W.G., Cai, Y., Hallen, B.: The structure and value of modularity in software design. In: ACM SIGSOFT Software Engineering Notes, vol. 26. ACM, pp. 99–108 (2001) Sullivan, K.J., Griswold, W.G., Cai, Y., Hallen, B.: The structure and value of modularity in software design. In: ACM SIGSOFT Software Engineering Notes, vol. 26. ACM, pp. 99–108 (2001)
80.
Zurück zum Zitat Teitelbaum, T., Reps, T.: The Cornell program synthesizer: a syntax-directed programming environment. Commun. ACM 24(9), 563–573 (1981)CrossRef Teitelbaum, T., Reps, T.: The Cornell program synthesizer: a syntax-directed programming environment. Commun. ACM 24(9), 563–573 (1981)CrossRef
81.
Zurück zum Zitat Thomas, D., Hunt, A.: Mock objects. IEEE Softw. 19(3), 22–24 (2002)CrossRef Thomas, D., Hunt, A.: Mock objects. IEEE Softw. 19(3), 22–24 (2002)CrossRef
82.
Zurück zum Zitat Tolvanen, J.-P., Kelly, S.: MetaEdit+: defining and using integrated domain-specific modeling languages. In: OOPSLA 2009, OOPSLA ’09. ACM (2009) Tolvanen, J.-P., Kelly, S.: MetaEdit+: defining and using integrated domain-specific modeling languages. In: OOPSLA 2009, OOPSLA ’09. ACM (2009)
83.
Zurück zum Zitat Tomita, M.: Generalized LR Parsing. Springer, New York (2012) Tomita, M.: Generalized LR Parsing. Springer, New York (2012)
84.
Zurück zum Zitat Tratt, L.: Domain specific language implementation via compile-time meta-programming. TOPLAS 30(6), 1–40 (2008)CrossRef Tratt, L.: Domain specific language implementation via compile-time meta-programming. TOPLAS 30(6), 1–40 (2008)CrossRef
85.
Zurück zum Zitat Ujhelyi, Z., Bergmann, G., Hegedüs, Á., Horváth, Á., Izsó, B., Ráth, I., Szatmári, Z., Varró, D.: EMF-IncQuery: an integrated development environment for live model queries. Sci. Comput. Program. 98, 80–99 (2015)CrossRef Ujhelyi, Z., Bergmann, G., Hegedüs, Á., Horváth, Á., Izsó, B., Ráth, I., Szatmári, Z., Varró, D.: EMF-IncQuery: an integrated development environment for live model queries. Sci. Comput. Program. 98, 80–99 (2015)CrossRef
86.
Zurück zum Zitat van Antwerpen, H., Neron, P., Tolmach, A.P., Visser, E., Wachsmuth, G.: A constraint language for static semantic analysis based on scope graphs. In: Erwig, M., Rompf, T. (eds.) 2016 Workshop on Partial Evaluation and Program Manipulation, PEPM 2016. ACM, pp. 49–60 (2016). doi:10.1145/2847538.2847543 van Antwerpen, H., Neron, P., Tolmach, A.P., Visser, E., Wachsmuth, G.: A constraint language for static semantic analysis based on scope graphs. In: Erwig, M., Rompf, T. (eds.) 2016 Workshop on Partial Evaluation and Program Manipulation, PEPM 2016. ACM, pp. 49–60 (2016). doi:10.​1145/​2847538.​2847543
87.
Zurück zum Zitat van den Bos, J., van der Storm, T.: Bringing domain-specific languages to digital forensics. In: Proceedings of the 33rd International Conference on Software Engineering. ACM, pp. 671–680 (2011) van den Bos, J., van der Storm, T.: Bringing domain-specific languages to digital forensics. In: Proceedings of the 33rd International Conference on Software Engineering. ACM, pp. 671–680 (2011)
88.
Zurück zum Zitat van Deursen, A.: Domain-specific languages versus object-oriented frameworks: A financial engineering case study. In: Smalltalk and Java in Industry and Academia, STJA’97, pp. 35–39 (1997) van Deursen, A.: Domain-specific languages versus object-oriented frameworks: A financial engineering case study. In: Smalltalk and Java in Industry and Academia, STJA’97, pp. 35–39 (1997)
89.
Zurück zum Zitat van Deursen, A., Klint, P.: Little languages: little maintenance? J. Softw. Maint. 10(2), 75–92 (1998)CrossRef van Deursen, A., Klint, P.: Little languages: little maintenance? J. Softw. Maint. 10(2), 75–92 (1998)CrossRef
90.
Zurück zum Zitat Van Deursen, A., Klint, P., Tip, F.: Origin tracing. J. Symb. Comput. 15(5), 523–545 (1993)CrossRefMATH Van Deursen, A., Klint, P., Tip, F.: Origin tracing. J. Symb. Comput. 15(5), 523–545 (1993)CrossRefMATH
91.
Zurück zum Zitat van Rest, O., Wachsmuth, G., Steel, J.R., Süß, J.G., Visser, E.: Robust real-time synchronization between textual and graphical editors. In: Theory and Practice of Model Transformations. Springer, pp. 92–107 (2013) van Rest, O., Wachsmuth, G., Steel, J.R., Süß, J.G., Visser, E.: Robust real-time synchronization between textual and graphical editors. In: Theory and Practice of Model Transformations. Springer, pp. 92–107 (2013)
92.
Zurück zum Zitat Vergu, V., Neron, P., Visser, E.: DynSem: A DSL for dynamic semantics specification. In: LIPIcs-Leibniz International Proceedings in Informatics, vol. 36. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik (2015) Vergu, V., Neron, P., Visser, E.: DynSem: A DSL for dynamic semantics specification. In: LIPIcs-Leibniz International Proceedings in Informatics, vol. 36. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik (2015)
93.
Zurück zum Zitat Visser, E.: WebDSL: a case study in domain-specific language engineering. In: Generative and Transformational Techniques in Software Engineering II, International Summer School, GTTSE 2007, LNCS (2007) Visser, E.: WebDSL: a case study in domain-specific language engineering. In: Generative and Transformational Techniques in Software Engineering II, International Summer School, GTTSE 2007, LNCS (2007)
94.
Zurück zum Zitat Visser, E.: Program transformation with Stratego/XT. In: Domain-Specific Program Generation. Springer, pp. 216–238 (2004) Visser, E.: Program transformation with Stratego/XT. In: Domain-Specific Program Generation. Springer, pp. 216–238 (2004)
95.
Zurück zum Zitat Voelter, M.: Embedded software development with projectional language workbenches. In: MODELS 2010, Lecture Notes in Computer Science. Springer (2010) Voelter, M.: Embedded software development with projectional language workbenches. In: MODELS 2010, Lecture Notes in Computer Science. Springer (2010)
96.
Zurück zum Zitat M. Voelter. Language and IDE development, modularization and composition with MPS. In: GTTSE 2011, LNCS. Springer (2011) M. Voelter. Language and IDE development, modularization and composition with MPS. In: GTTSE 2011, LNCS. Springer (2011)
97.
Zurück zum Zitat Voelter, M.: Integrating prose as first-class citizens with models and code. In: 7th International Workshop on Multi-Paradigm Modeling MPM 2013 (2013) Voelter, M.: Integrating prose as first-class citizens with models and code. In: 7th International Workshop on Multi-Paradigm Modeling MPM 2013 (2013)
98.
Zurück zum Zitat Voelter, M.: Generic Tools, Specific Languages. Delft University of Technology, Delft (2014) Voelter, M.: Generic Tools, Specific Languages. Delft University of Technology, Delft (2014)
99.
Zurück zum Zitat Voelter, M., Lisson, S.: Supporting diverse notations in MPS’ projectional editor. In: Proceedings of the GEMOC Workshop (2014) Voelter, M., Lisson, S.: Supporting diverse notations in MPS’ projectional editor. In: Proceedings of the GEMOC Workshop (2014)
100.
Zurück zum Zitat Voelter, M., Ratiu, D., Schaetz, B., Kolb, B.: mbeddr: an extensible C-based programming language and IDE for embedded systems. In: Proceedings of the 3rd Annual Conference on Systems, Programming, and Applications: Software for Humanity. ACM (2012) Voelter, M., Ratiu, D., Schaetz, B., Kolb, B.: mbeddr: an extensible C-based programming language and IDE for embedded systems. In: Proceedings of the 3rd Annual Conference on Systems, Programming, and Applications: Software for Humanity. ACM (2012)
101.
Zurück zum Zitat Voelter, M., Benz, S., Dietrich, C., Engelmann, B., Helander, M., Kats, L., Visser, E., Wachsmuth, G.: DSL Engineering. dslbook.org (2013) Voelter, M., Benz, S., Dietrich, C., Engelmann, B., Helander, M., Kats, L., Visser, E., Wachsmuth, G.: DSL Engineering. dslbook.org (2013)
102.
Zurück zum Zitat Voelter, M., Ratiu, D., Kolb, B., Schaetz, B.: mbeddr: instantiating a language workbench in the embedded software domain. Autom. Softw. Eng. 20(3), 339–390 (2013)CrossRef Voelter, M., Ratiu, D., Kolb, B., Schaetz, B.: mbeddr: instantiating a language workbench in the embedded software domain. Autom. Softw. Eng. 20(3), 339–390 (2013)CrossRef
103.
Zurück zum Zitat Voelter, M., Ratiu, D., Tomassetti, F.: Requirements as first-class citizens: integrating requirements closely with implementation artifacts. In: ACESMB@MoDELS (2013) Voelter, M., Ratiu, D., Tomassetti, F.: Requirements as first-class citizens: integrating requirements closely with implementation artifacts. In: ACESMB@MoDELS (2013)
104.
Zurück zum Zitat Voelter, M., Siegmund, J., Berger, T., Kolb, B.: Towards user-friendly projectional editors. In: 7th International Conference on Software Language Engineering (SLE) (2014) Voelter, M., Siegmund, J., Berger, T., Kolb, B.: Towards user-friendly projectional editors. In: 7th International Conference on Software Language Engineering (SLE) (2014)
105.
Zurück zum Zitat Voelter, M., Kolb, B., Warmer, J.: Projecting a modular future. IEEE Softw. 32(5), 46–52 (2015)CrossRef Voelter, M., Kolb, B., Warmer, J.: Projecting a modular future. IEEE Softw. 32(5), 46–52 (2015)CrossRef
106.
Zurück zum Zitat Voelter, M., van Deursen, A., Kolb, B., Eberle, S.: Using C language extensions for developing embedded software: a case study. In: OOPSLA 2015 (2015) Voelter, M., van Deursen, A., Kolb, B., Eberle, S.: Using C language extensions for developing embedded software: a case study. In: OOPSLA 2015 (2015)
107.
Zurück zum Zitat Voelter, M., Szabo, T., Lisson, S., Kolb, B., Erdweg, S., Berger, T.: Efficient development of consistent projectional editors using grammar cells. In: Proceedings of the 9th Conference on Software Language Engineering (SLE) (2016) Voelter, M., Szabo, T., Lisson, S., Kolb, B., Erdweg, S., Berger, T.: Efficient development of consistent projectional editors using grammar cells. In: Proceedings of the 9th Conference on Software Language Engineering (SLE) (2016)
108.
Zurück zum Zitat Winkler, S., Pilgrim, J.: A survey of traceability in requirements engineering and model-driven development. Softw. Syst. Model. 9, 529–565 (2010)CrossRef Winkler, S., Pilgrim, J.: A survey of traceability in requirements engineering and model-driven development. Softw. Syst. Model. 9, 529–565 (2010)CrossRef
109.
Zurück zum Zitat Wu, H., Gray, J., Roychoudhury, S., Mernik, M.: Weaving a debugging aspect into domain-specific language grammars. In: Proceedings of the 2005 ACM Symposium on Applied Computing. ACM, pp. 1370–1374 (2005) Wu, H., Gray, J., Roychoudhury, S., Mernik, M.: Weaving a debugging aspect into domain-specific language grammars. In: Proceedings of the 2005 ACM Symposium on Applied Computing. ACM, pp. 1370–1374 (2005)
110.
Zurück zum Zitat Yin, R.K.: Case Study Research: Design and Methods. Sage, Thousand Oaks (2014) Yin, R.K.: Case Study Research: Design and Methods. Sage, Thousand Oaks (2014)
Metadaten
Titel
Lessons learned from developing mbeddr: a case study in language engineering with MPS
verfasst von
Markus Voelter
Bernd Kolb
Tamás Szabó
Daniel Ratiu
Arie van Deursen
Publikationsdatum
09.01.2017
Verlag
Springer Berlin Heidelberg
Erschienen in
Software and Systems Modeling / Ausgabe 1/2019
Print ISSN: 1619-1366
Elektronische ISSN: 1619-1374
DOI
https://doi.org/10.1007/s10270-016-0575-4

Weitere Artikel der Ausgabe 1/2019

Software and Systems Modeling 1/2019 Zur Ausgabe