Skip to main content
Log in

Bridging the chasm between MDE and the world of compilation

  • Expert's Voice
  • Published:
Software & Systems Modeling Aims and scope Submit manuscript

Abstract

Modeling and transforming have always been the cornerstones of software system development, albeit often investigated by different research communities. Modeling addresses how information is represented and processed, while transformation cares about what the results of processing this information are. To address the growing complexity of software systems, model-driven engineering (MDE) leverages domain-specific languages to define abstract models of systems and automated methods to process them. Meanwhile, compiler technology mostly concentrates on advanced techniques and tools for program transformation. For this, it has developed complex analyses and transformations (from lexical and syntactic to semantic analyses, down to platform-specific optimizations). These two communities appear today quite complementary and are starting to meet again in the software language engineering (SLE) field. SLE addresses all the stages of a software language lifecycle, from its definition to its tooling. In this article, we show how SLE can lean on the expertise of both MDE and compiler research communities and how each community can bring its solutions to the other one. We then draw a picture of the current state of SLE and of the challenges it has still to face.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6

Similar content being viewed by others

Notes

  1. http://www.emftext.org/index.php/EMFText.

  2. http://www.eclipse.org/Xtext.

  3. http://www.kermeta.org/.

  4. http://eclipse.org/atl/.

  5. http://user.cs.tu-berlin.de/~gragra/agg/.

  6. http://tom.loria.fr/wiki/index.php5/Documentation:EMF.

  7. This includes functional languages where the notion of dataflow analysis is well known.

  8. http://gcc.gnu.org/.

  9. http://software.intel.com/en-us/articles/intel-compilers.

  10. http://gecos.gforge.inria.fr.

  11. http://www.cs.colostate.edu/AlphaZ/.

  12. Note that DSLs are also a way for companies to protect their Intellectual Property Rights on their knowledge capitalization.

  13. Toolkit in OPen-source for Critical Applications & SystEms Development, cf. http://www.topcased.org.

References

  1. Vogt, S.H., Swierstra, D., Kuiper, M.F.: Higher-order attribute grammars. In: Wexelblat, R.L., (ed.) Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation (PLDI ’89), pp. 131–145. ACM (1989)

  2. Baxter, I.D., Pidgeon, C., Mehlich, M.: DMS: Program transformations for practical scalable software evolution. In: Finkelstein, A., Estublier, J., Rosenblum, D.S. (eds.) Proceedings of the 26th International Conference on Software Engineering (ICSE ’04), pp. 625–634. IEEE (2004)

  3. Klint, P., Vinju, J.J., van der Storm, T.: Language design for meta-programming in the software composition domain. In: Bergel, A., Fabry, J. (eds.) Proceedings of the 8th International Conference on Software Composition (SC ’09), number 5634 in Lecture Notes in Computer Science, pp. 1–4. Springer, Berlin (2009)

  4. Bravenboer, M., Kalleberg, K.T., Vermaas, R., Visser, E.: Stratego/xt 0.17. a language and toolset for program transformation. Sci. Computer Program. 72(1–2), 52–70 (2008)

  5. Cordy, J.R.: The TXL source transformation language. Sci. Computer Program. 61(3), 190–210 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  6. OMG. Unified Modeling Language (UML) 2.1.2 Superstructure (2007)

  7. Muller, P.-A., Fleurey,F., Jézéquel, J.-M.: Weaving executability into object-oriented meta-languages. In: Briand, L.C., Williams, C. (eds.) Proceedings of the 8th International Conference on Model Driven Engineering Languages and Systems (MODELS/UML ’2005), number 3713 in Lecture Notes in Computer Science, pp. 264–278. Springer, Heidelberg (2005)

  8. Pickin, S., Jard, C., Jeron, T., Jézéquel, J.-M., Le Traon, Y.: Test synthesis from UML models of distributed software. IEEE Trans. Softw. Eng. 33(4), 252–269 (2007)

    Article  Google Scholar 

  9. Muller, P.-A., Fondement, F., Fleurey, F., Hassenforder, M., Schnekenburger, R., Gérard, S., Jézéquel, J.-M.: Model driven analysis and synthesis of textual concrete syntax. J. Softw. Syst. Model. 7(4), 423–442 (2008)

    Article  Google Scholar 

  10. OMG. Meta Object Facility (MOF) 2.0 Core Specification (2006)

  11. Jézéquel, J.-M.: Model driven design and aspect weaving. J. Softw. Syst. Model. 7(2), 209–218 (2008)

    Article  Google Scholar 

  12. Kleppe, A.: Software Language Engineering: creating domain-specific languages using metamodels. Addison-Wesley Professional (2008)

  13. Ekman, T., Hedin, G.: The JastAdd system—modular extensible compiler construction. Sci. Computer Program. 69(1–3), 14–26 (2007)

    Google Scholar 

  14. Knuth, D.E.: On the translation of languages from left to rigth. Inform. Control 8(6), 607–639 (1965)

    Article  MathSciNet  Google Scholar 

  15. Knuth, D.E.: Top-down syntax analysis. Acta Inform. 1, 79–110 (1971)

    Article  MATH  Google Scholar 

  16. Tomita, M.: Efficient parsing for natural language: a fast algorithm for practical systems. Kluwer Academic Publishers, Boston (1985)

    Google Scholar 

  17. Parr, T.J., Quong, R.W.: Antlr: a predicated-ll(k) parser generator. Softw. Pract. Exp. 25(7), 789–810 (1995)

    Article  Google Scholar 

  18. Degano, P., Priami, Corrado: Comparison of syntactic error handling in LR parsers. Softw. Pract. Exp. 25(6), 657–679 (1995)

    Article  Google Scholar 

  19. Wagner, T.A., Graham, S.L.: Efficient and flexible incremental parsing. ACM Trans. Program. Lang. Syst. 20(5), 980–1013 (1998)

    Article  Google Scholar 

  20. Risoldi, M., Buchs, D.: A domain specific language and methodology for control systems GUI specification, verification and prototyping. In: Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing (VLHCC ’07), pp. 179–182. IEEE (2007)

  21. Hahn, C.: A domain specific modeling language for multiagent systems. In: Padgham, L., Parkes, D.C., Müller, J.P., Parsons, S. (eds.) Proceedings of 7th International Conference on Autonomous Agents and Multi-Agent Systems (AAMAS ’08), pp. 233–240. IFAAMAS (2008)

  22. OMG. UML Object Constraint Language (OCL) 2.0 Specification (2003)

  23. OMG. MOF 2.0 Query/ View/ Transformation (QVT) Specification (2008)

  24. Sagiv, M., Reps, T., Wilhelm, R.: Parametric shape analysis via 3-valued logic. In: Appel, A.W., Aiken, A. (eds.) Proceedings of the 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’99), pp. 105–118. ACM (1999)

  25. Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools (2nd Edition). Addison Wesley, Boston (2006)

    Google Scholar 

  26. Wile, D.S.: POPART: Producer of parsers and related tools. System Builder’s Manual, USC/Information Sciences Institute (1982)

  27. Clement, D., Incerpi, J., Kahn, G.: CENTAUR: towards a software tool box for programming environments. In: Long, F. (ed.) Proceedings of the International Workshop on Software Engineering Environments (SEE ’90), number 467 in Lecture Notes in Computer Science, pp. 287–304. Springer, Berlin (1990)

  28. Balland, Emilie, Moreau, Pierre-Etienne, Reilles, Antoine: Rewriting strategies in Java. Electron. Notes Theor. Computer Sci. 219, 97–111 (2008)

    Article  Google Scholar 

  29. Kildall, G.A.: A unified approach to global program optimization. In: Fischer P.C., Ullman, J.D. (eds.) Proceedings of the 1st annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL ’73), pp. 194–206. ACM (1973)

  30. Martin, F.: PAG— an efficient program analyzer generator. Int. J. Softw. Tools Technol. Transf. 2(1), 46–67 (1998)

    Article  MATH  Google Scholar 

  31. Zeng, J., Mitchell, C., Edwards, S.A.: A domain-specific language for generating dataflow analyzers. Electron. Notes Theor. Computer Sci. 164(2), 103–119 (2006)

    Article  Google Scholar 

  32. Stone, A., Strout, M., Behere, S.: May/must analysis and the DFAGen data-flow analysis generator. Inform. Softw. Technol. 51(10), 1440–1453 (2009)

    Article  Google Scholar 

  33. Fraser, C.W.: A retargetable compiler for ANSI C. SIGPLAN Notices 26(10), 29–43 (1991)

    Article  Google Scholar 

  34. Hadjiyiannis, G., Hanono, S., Devadas, S.: Isdl: an instruction set description language for retargetability. In: Proceedings of the 34th annual Design Automation Conference (DAC ’97), pp. 299–302. ACM (1997)

  35. Nikolov, Hristo, Stefanov, Todor, Deprettere, Ed F.: Systematic and automated multiprocessor system design, programming, and implementation. IEEE Trans. Computer-Aided Des. Integrat. Circuits Syst. 27(3), 542–555 (2008)

    Article  Google Scholar 

  36. OMG. Model Driven Architecture (MDA) Guide, v1.0.1 (2003)

  37. Almeida, J.P., Dijkman, R., van Sinderen, M., Pires, L.F.: On the notion of abstract platform in MDA Development. In: Proceedings of the 8th IEEE International Conference on Enterprise Distributed Object Computing (EDOC ’04), pp. 253–263. IEEE (2004)

  38. Wagelaar, D., Jonckers, V.: Explicit platform models for MDA. In: Briand, L.C., Williams, C. (eds.) Proceedings of the 8th International Conference on Model Driven Engineering Languages and Systems (MODELS ’05), number 3713 in Lecture Notes in Computer Science, pp. 367–381. Springer, Heidelberg (2005)

  39. France, R., Rumpe, B.: Model-driven development of complex software: a research roadmap. In: Briand, L.C., Wolf, A. L. (eds.) Proceedings of the Future of Software Engineering Symposium (FOSE ’07), pp. 37–54. IEEE (2007)

  40. Schmidt, D.C.: Guest editor’s introduction: model-driven engineering. IEEE Computer 39(2), 25–31 (2006)

    Article  Google Scholar 

  41. Wimmer, M., Kramler, G.: Bridging grammarware and modelware. In: Bruel, J.-M. (ed.) Proceedings of Satellite Events at the MODELS 2005 Conference (WiSME ’05), number 3844 in Lecture Notes in Computer Science, pp. 159–168. Springer, Jamaica (2005)

  42. Eker, J., Janneck, J., Lee, E.A., Liu, J., Liu, X., Ludvig, J., Sachs, S., Xiong, Yuhong: Taming heterogeneity—the Ptolemy approach. Proc. IEEE 91(1), 127–144 (2003)

    Article  Google Scholar 

  43. Charfi, A., Mraidha, C. Gérard, S., Terrier, F., Boulet, P.: Toward optimized code generation through model-based optimization. In: Proceedings of the 13th Design, Automation and Test in Europe Conference (DATE ’10), pp. 1313–1316. IEEE (2010)

  44. Emmelmann, H., Schröer, F.-W., Landwehr, R.: BEG—a generator for efficient back ends. In: Wexelblat, R.L. (ed.) Proceedings of the ACM SIGPLAN’89 Conference on Programming Language Design and Implementation (PLDI ’89), pp. 227–237. ACM (1989)

  45. Fraser, C.W., Henry, R.R., Proebsting, T.A.: BURG: fast optimal instruction selection and tree parsing. SIGPLAN Notices 27(4), 68–76 (1992)

    Article  Google Scholar 

  46. Floch, A., Yuki, T., Guy, C., Derrien, S., Combemale, B., Sanjay R., France, R.: Model-Driven Engineering and Optimizing Compilers: a bridge too far? In: Whittle, J., Clark, T., Kühne, T. (eds.) Proceedings of the 15th International Conference on Model Driven Engineering Languages and Systems (MODELS ’11), number 6981 in Lecture Notes in Computer Science, pp. 608–622. Springer, Berlin (2011)

  47. Meyer, B.: Applying “Design by Contract”. IEEE Computer 25(10), 40–51 (1992)

    Article  Google Scholar 

  48. Stark, E.: A proof technique for rely/guarantee properties. In: Maheshwari, S.N. (ed.) Proceedings of the 5th Conference on Foundations of Software Technology and Theoretical Computer Science (FSTTCS ’85), volume 206 of Lecture Notes in Computer Science, pp. 369–391. Springer, Berlin (1985)

  49. Favre, J.-M., Gasević, D., Lammel, R., Winter, A.: Guest Editors’ introduction to the special section on software language engineering. IEEE Trans. Softw. Eng. 35(6), 737–741 (2009)

    Article  Google Scholar 

  50. Farail, P., Gaufillet, P., Canals, A., Le Camus, C., Sciamma, D., Michel, P., Crégut, X., Pantel, M.: The topcased project: a Toolkit in OPen source for Critical Aeronautic SystEms Design. In: Proceedings of the 3rd European Congress on Embedded Real Time Software (ERTS ’06) (2006)

  51. Garavel, H., Lang, F.: NTIF: a general symbolic model for communicating sequential processes with data. In: Peled, D. Vardi, M.Y. (eds.) Proceedings of the 22nd International Conference on Formal Techniques for Networked and Distributed Sytems (FORTE ’02), number 2529 in Lecture Notes in Computer Science, pp. 276–291. Springer, Berlin (2002)

  52. Berthomieu, B., Ribet, P.-O., Vernadat, F., Bernartt, J.L., Farines, J.-M., Bodeveix, J.-P., Filali, M., Padiou, G., Michel, P., Farail, P., Gauffilet, P., Dissaux, P., Lambert., J.-L.: Towards the verification of real-time systems in avionics: the Cotre approach. Electron. Notes Theor. Computer Sci. 80, 203–218 (2003)

    Article  Google Scholar 

  53. Robby, Dwyer, M.B., Hatcliff, J.: Domain-specific model checking using the bogor framework. In: Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering (ASE ’06), pp. 369–370. IEEE (2006)

  54. Berthomieu, B., Bodeveix, J.-P., Farail, P., Filali, M., Garavel, H., Gaufillet, P., Lang, F., Vernadat, F.: Fiacre: an Intermediate Language for Model Verification in the Topcased Environment. In: Proceedings of the 4th European Congress on Embedded Real Time Software (ERTS ’08), pp. 1–8 (2008)

  55. Wimmer, M., Kappel, G., Kusel, A., Retschitzegger, W., Schoenboeck, J., Schwinger, W.: Fact or fiction—reuse in model-to-model transformations. In: Proceedings of the 5th International Conference on Theory and Practice of Model Transformations (ICMT ’12), Lecture Notes in Computer Science. Springer, Heidelberg (2012)

  56. Cuccuru, A., Mraidha, C., Terrier, F., Gérard, S.: Templatable metamodels for semantic variation points. In: Akehurst, D.H., Vogel, R., Paige, R.F. (eds.) Proceedings of the 3rd European conference on Model driven architecture-foundations and applications (ECMDA-FA’07), number 4530 in Lecture Notes in Computer Science, pp. 68–82. Springer, Berlin (2007)

  57. de Lara, J., Guerra, E.: From types to type requirements: genericity for model-driven engineering. J. Softw. Syst. Model. (2011)

  58. Varró, D., Pataricza, A.: Generic and meta-transformations for model transformation engineering. In: Baar, T., Strohmeier, A., Moreira, A.M.D., Mellor, S.J. (eds.) Proceedings of the 7th International Conference on the Unified Modeling Language (UML ’04), number 3273 in Lecture Notes in Computer Science, pp. 290–304. Springer, Lisbon (2004)

  59. Kerboeuf, M., Babau, J.-P.: A DSML for reversible transformations. In: Lopes, C.V. (ed.) Proceedings of the OOPSLA Workshop on Domain-Specific Modeling. ACM (2011)

  60. Moha, N., Mahé, V., Barais, O., Jézéquel, J.-M.: Generic Model Refactorings. In: Schürr, A., Selic, B. (eds.) Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems (MODELS ’09), number 5795 in Lecture Notes in Computer Science, pp. 628–643. Springer, Heidelberg (2009)

  61. Wimmer, M., Kusel, A., Retschitzegger, W., Schönböck, J., Schwinger, W., Cuadrado, J., Guerra, E., de Lara, J.: Reusing model transformations across heterogeneous metamodels. Online Publication. In: Proceedings of the International Workshop on Multi-Paradigm Modeling (2011)

  62. Bruce, K.B., Vanderwaart, J.C.: Semantics-Driven Language design: statically type-safe virtual types in object-oriented languages. Electron. Notes Theor. Computer Sci. 20, 50–75 (1999)

    Article  MathSciNet  Google Scholar 

  63. Ernst, E.: Family polymorphism. In: Knudsen, J.L. (ed.) Proceedings of the 15th European Conference on Object-Oriented Programming (ECOOP ’01), number 2072 in Lecture Notes in Computer Science, pp. 303–326. Springer, Heidelberg (2001)

  64. Steel, J., Jézéquel, J.-M.: On model typing. J. Softw. Syst. Model. 6(4), 401–413 (2007)

    Article  Google Scholar 

  65. Guy, C., Combemale, B., Derrien, S., Jézéquel, J.-M.: On model subtyping. In: Valecillo, A. (ed.) Proceedings of the 8th European Conference on Modelling Foundations and Applications (ECMFA ’12), number 7349 in Lecture Notes in Computer Science, pp. 400–415. Springer (2012)

  66. Vignaga, A., Jouault, F., Bastarrica, M., Brunelière, H.: Typing artifacts in megamodeling. J. Softw. Syst. Model. 10(1), 1–15 (2011)

    Article  Google Scholar 

  67. DeRemer, F., Kron, H.: Programming-in-the large versus programming-in-the-small. SIGPLAN Notices 10(6), 114–121 (1975)

    Article  Google Scholar 

  68. Hebig, R., Seibel, A., Giese, H.: On the unification of megamodels. In: Amaral, V., Vangheluwe, H., Hardebolle, C., Lengyel, L., Magaria, T., Padberg, J., Taentzer, G. (eds.) Proceedings of the 4th International Workshop on Multi Paradigm Modeling at the MODELS 2010 Conference (MPM ’10), volume 42 of Electronic Communications of the EASST, pp. 1–13. EASST (2010)

  69. Favre, J.-M., Nguyen, T.: Towards a megamodel to model software evolution through transformations. Electron. Notes Theor. Computer Sci. 127(3), 59–74 (2005)

    Article  Google Scholar 

  70. Diskin, Z., Xiong, Y., Czarnecki, K.: Specifying overlaps of heterogeneous models for global consistency checking. In: Dingel, J., Solberg, A., (eds.) Proceedings of the First International Workshop on Model-Driven Interoperability (MDI ’10), number 6627 in Lecture Notes in Computer Science, pp. 42–51. Springer, Heidelberg (2010)

  71. Salay, R., Mylopoulos, J., Easterbrook, S.: Managing models through macromodeling. In: Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering (ASE ’08), pp. 447–450. IEEE (2008)

  72. Guerra, E., de Lara, J., Orejas, F.: Pattern-based model-to-model transformation: handling attribute conditions. In: Paige, R.F. (ed.) Proceedings of the 2nd International Conference on Theory and Practice of Model Transformations (ICMT ’09), number 5563 in Lecture Notes in Computer Science, pp. 83–99. Springer (2009)

  73. Clavreul, M., Barais, O., Jézéquel, J.-M.: Integrating legacy systems with MDE. In: Kramer, J., Bishop, J., Devanbu, P.T., Uchitel, S. (eds.) Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering—Volume 2 (ICSE ’10), pp. 69–78. ACM (2010)

  74. Guerra, E., de Lara, J., Kolovos, D.S., Paige, R.F.: Inter-modelling: from theory to practice. In: Petriu, D.C., Rouquette, N., Haugen, Ø. (eds.) Proceedings of the 13th International Conference on Model driven engineering languages and systems: Part I (MODELS ’10), number 6394 in Lecture Notes in Computer Science, pp. 376–391. Springer, Heidelberg (2010)

  75. Leroy, X.: Formal verification of an optimizing compiler. In: Baader, F. (ed.) Proceedings of the 18th International Conference on Term Rewriting and Applications (RTA’07), number 4533 in Lecture Notes in Computer Science, pp. 1–1. Springer, Paris (2007)

  76. Leroy, X., Blazy, S.: Formal verification of a C-like memory model and its uses for verifying program transformations. J. Autom. Reason. 41(1), 1–31 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  77. Narayanan, A., Karsai, G.: Towards verifying model transformations. Electron. Notes Theor. Computer Sci. 211, 191–200 (2008)

    Article  Google Scholar 

  78. Combemale, B., Crégut, X., Garoche, P., Thirioux, X.: Essay on semantics definition in MDE—an instrumented approach for model verification. J. Softw. 4(9), 943–958 (2009)

    Google Scholar 

  79. Ehrig, H. Ermel, C.: Semantical correctness and completeness of model transformations using graph and rule transformation. In: Ehrig, H., Heckel, R., Rozenberg, G., Taentzer, G. (eds.) Proceedings of the 4th International Conference on Graph Transformations (ICGT ’08), number 5214 in Lecture Notes in Computer Science, pp. 194–210. Springer, Heidelberg (2008)

  80. Baudry, B., Ghosh, S., Fleurey, F., France, R., Le Traon, Y., Mottu, J.-M.: Barriers to systematic model transformation testing. Commun. ACM 53(6), 139–143 (2010)

    Article  Google Scholar 

  81. Hutchinson, J., Whittle, J., Rouncefield, M., Kristoffersen, S.: Empirical assessment of MDE in industry. In: Taylor, R.N., Gall, H., Medvidovic, N. (eds.) Proceedings of the 33rd International Conference on Software Engineering (ICSE ’11), pp. 471–480. ACM (2011)

Download references

Acknowledgments

This work is the result of a close collaboration between Inria and Colorado State University (CSU), involving two teams in MDE (the Triskell team at Inria and the SE group at CSU), and two teams in optimizing compilers (the CAIRN team at Inria and the Mélange group at CSU). This collaboration is partially funded by the Inria associated teams MoCAA and LRS.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Clément Guy.

Additional information

Communicated by Prof. Jon Whittle and Gregor Engels.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Jézéquel, JM., Combemale, B., Derrien, S. et al. Bridging the chasm between MDE and the world of compilation. Softw Syst Model 11, 581–597 (2012). https://doi.org/10.1007/s10270-012-0266-8

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-012-0266-8

Keywords

Navigation