Software & Systems Modeling

, Volume 11, Issue 4, pp 581–597 | Cite as

Bridging the chasm between MDE and the world of compilation

  • Jean-Marc Jézéquel
  • Benoit Combemale
  • Steven Derrien
  • Clément Guy
  • Sanjay Rajopadhye
Expert's Voice

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.

Keywords

Model-driven engineering (MDE) Domain-specific language (DSL) Compilation Intermediate representation (IR) Software language engineering (SLE) 

Notes

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.

References

  1. 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)Google Scholar
  2. 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)Google Scholar
  3. 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)Google Scholar
  4. 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)Google Scholar
  5. 5.
    Cordy, J.R.: The TXL source transformation language. Sci. Computer Program. 61(3), 190–210 (2006)MathSciNetMATHCrossRefGoogle Scholar
  6. 6.
    OMG. Unified Modeling Language (UML) 2.1.2 Superstructure (2007)Google Scholar
  7. 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)Google Scholar
  8. 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)CrossRefGoogle Scholar
  9. 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)CrossRefGoogle Scholar
  10. 10.
    OMG. Meta Object Facility (MOF) 2.0 Core Specification (2006)Google Scholar
  11. 11.
    Jézéquel, J.-M.: Model driven design and aspect weaving. J. Softw. Syst. Model. 7(2), 209–218 (2008)CrossRefGoogle Scholar
  12. 12.
    Kleppe, A.: Software Language Engineering: creating domain-specific languages using metamodels. Addison-Wesley Professional (2008)Google Scholar
  13. 13.
    Ekman, T., Hedin, G.: The JastAdd system—modular extensible compiler construction. Sci. Computer Program. 69(1–3), 14–26 (2007)Google Scholar
  14. 14.
    Knuth, D.E.: On the translation of languages from left to rigth. Inform. Control 8(6), 607–639 (1965)MathSciNetCrossRefGoogle Scholar
  15. 15.
    Knuth, D.E.: Top-down syntax analysis. Acta Inform. 1, 79–110 (1971)MATHCrossRefGoogle Scholar
  16. 16.
    Tomita, M.: Efficient parsing for natural language: a fast algorithm for practical systems. Kluwer Academic Publishers, Boston (1985)Google Scholar
  17. 17.
    Parr, T.J., Quong, R.W.: Antlr: a predicated-ll(k) parser generator. Softw. Pract. Exp. 25(7), 789–810 (1995)CrossRefGoogle Scholar
  18. 18.
    Degano, P., Priami, Corrado: Comparison of syntactic error handling in LR parsers. Softw. Pract. Exp. 25(6), 657–679 (1995)CrossRefGoogle Scholar
  19. 19.
    Wagner, T.A., Graham, S.L.: Efficient and flexible incremental parsing. ACM Trans. Program. Lang. Syst. 20(5), 980–1013 (1998)CrossRefGoogle Scholar
  20. 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)Google Scholar
  21. 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)Google Scholar
  22. 22.
    OMG. UML Object Constraint Language (OCL) 2.0 Specification (2003)Google Scholar
  23. 23.
    OMG. MOF 2.0 Query/ View/ Transformation (QVT) Specification (2008)Google Scholar
  24. 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)Google Scholar
  25. 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. 26.
    Wile, D.S.: POPART: Producer of parsers and related tools. System Builder’s Manual, USC/Information Sciences Institute (1982)Google Scholar
  27. 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)Google Scholar
  28. 28.
    Balland, Emilie, Moreau, Pierre-Etienne, Reilles, Antoine: Rewriting strategies in Java. Electron. Notes Theor. Computer Sci. 219, 97–111 (2008)CrossRefGoogle Scholar
  29. 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)Google Scholar
  30. 30.
    Martin, F.: PAG— an efficient program analyzer generator. Int. J. Softw. Tools Technol. Transf. 2(1), 46–67 (1998)MATHCrossRefGoogle Scholar
  31. 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)CrossRefGoogle Scholar
  32. 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)CrossRefGoogle Scholar
  33. 33.
    Fraser, C.W.: A retargetable compiler for ANSI C. SIGPLAN Notices 26(10), 29–43 (1991)CrossRefGoogle Scholar
  34. 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)Google Scholar
  35. 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)CrossRefGoogle Scholar
  36. 36.
    OMG. Model Driven Architecture (MDA) Guide, v1.0.1 (2003)Google Scholar
  37. 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)Google Scholar
  38. 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)Google Scholar
  39. 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)Google Scholar
  40. 40.
    Schmidt, D.C.: Guest editor’s introduction: model-driven engineering. IEEE Computer 39(2), 25–31 (2006)CrossRefGoogle Scholar
  41. 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)Google Scholar
  42. 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)CrossRefGoogle Scholar
  43. 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)Google Scholar
  44. 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)Google Scholar
  45. 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)CrossRefGoogle Scholar
  46. 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)Google Scholar
  47. 47.
    Meyer, B.: Applying “Design by Contract”. IEEE Computer 25(10), 40–51 (1992)CrossRefGoogle Scholar
  48. 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)Google Scholar
  49. 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)CrossRefGoogle Scholar
  50. 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)Google Scholar
  51. 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)Google Scholar
  52. 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)CrossRefGoogle Scholar
  53. 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)Google Scholar
  54. 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)Google Scholar
  55. 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)Google Scholar
  56. 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)Google Scholar
  57. 57.
    de Lara, J., Guerra, E.: From types to type requirements: genericity for model-driven engineering. J. Softw. Syst. Model. (2011)Google Scholar
  58. 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)Google Scholar
  59. 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)Google Scholar
  60. 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)Google Scholar
  61. 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)Google Scholar
  62. 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)MathSciNetCrossRefGoogle Scholar
  63. 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)Google Scholar
  64. 64.
    Steel, J., Jézéquel, J.-M.: On model typing. J. Softw. Syst. Model. 6(4), 401–413 (2007)CrossRefGoogle Scholar
  65. 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)Google Scholar
  66. 66.
    Vignaga, A., Jouault, F., Bastarrica, M., Brunelière, H.: Typing artifacts in megamodeling. J. Softw. Syst. Model. 10(1), 1–15 (2011)CrossRefGoogle Scholar
  67. 67.
    DeRemer, F., Kron, H.: Programming-in-the large versus programming-in-the-small. SIGPLAN Notices 10(6), 114–121 (1975)CrossRefGoogle Scholar
  68. 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)Google Scholar
  69. 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)CrossRefGoogle Scholar
  70. 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)Google Scholar
  71. 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)Google Scholar
  72. 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)Google Scholar
  73. 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)Google Scholar
  74. 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)Google Scholar
  75. 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)Google Scholar
  76. 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)MathSciNetMATHCrossRefGoogle Scholar
  77. 77.
    Narayanan, A., Karsai, G.: Towards verifying model transformations. Electron. Notes Theor. Computer Sci. 211, 191–200 (2008)CrossRefGoogle Scholar
  78. 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. 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)Google Scholar
  80. 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)CrossRefGoogle Scholar
  81. 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)Google Scholar

Copyright information

© Springer-Verlag 2012

Authors and Affiliations

  • Jean-Marc Jézéquel
    • 1
  • Benoit Combemale
    • 1
  • Steven Derrien
    • 1
  • Clément Guy
    • 1
  • Sanjay Rajopadhye
    • 2
  1. 1.IRISA, InriaUniversity of Rennes 1RennesFrance
  2. 2.Department of Computer Science and Electrical and Computer Engineering DepartmentColorado State UniversityFort CollinsUSA

Personalised recommendations