Abstract
A primary goal of Model Driven Engineering (MDE) is to reduce the cost and effort of developing complex software systems using techniques for transforming abstract views of software to concrete implementations. The rich set of tools that have been developed, especially the growing maturity of model transformation technologies, opens the possibility of applying MDE technologies to transformation-based problems in other domains.
In this paper, we present our experience with using MDE technologies to build and evolve compiler infrastructures in the optimizing compiler domain. We illustrate, through our two ongoing research compiler projects for C and a functional language, the challenging aspects of optimizing compiler research and show how mature MDE technologies can be used to address them. We also identify some of the pitfalls that arise from unrealistic expectations of what can be accomplished using MDE and discuss how they can lead to unsuccessful and frustrating application of MDE technologies.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
France, R., Rumpe, B.: Model-driven development of complex software: A research roadmap. In: Briand, L., Wolf, A. (eds.) Future of Software Engineering 2007. IEEE-CS Press, Los Alamitos (2007)
Schmidt, D.: Guest editor’s introduction: Model-driven engineering. Computer 39(2), 25–31 (2006)
The Object Management Group: UML 2.0: Superstructure Specification. Version 2.0, OMG, formal/05-07-04 (2005)
Hall, M., Padua, D., Pingali, K.: Compiler research: the next 50 years. Communications of the ACM 52(2), 60–67 (2009)
Tripp, J.L., Gokhale, M., Peterson, K.D.: Trident: From High-Level Language to Hardware Circuitry. IEEE Computer 40(3), 28–37 (2007)
Leroy, X.: Formal certification of a compiler back-end or: programming a compiler with a proof assistant. In: Conference Record of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 42–54. ACM, New York (2006)
Arnold, G., Hölzl, J., Köksal, A., BodÃk, R., Sagiv, M.: Specifying and verifying sparse matrix codes. In: Proceedings of the 15th ACM SIGPLAN International Conference on Functional Programming, pp. 249–260. ACM, New York (2010)
Yelick, K., Semenzato, L., Pike, G., Miyamoto, C., Liblit, B., Krishnamurthy, A., Hilfinger, P., Graham, S., Gay, D., Colella, P., et al.: Titanium: A high-performance Java dialect. Concurrency Practice and Experience 10(11-13), 825–836 (1998)
Charles, P., Grothoff, C., Saraswat, V., Donawa, C., Kielstra, A., Ebcioglu, K., Von Praun, C., Sarkar, V.: X10: an object-oriented approach to non-uniform cluster computing. In: ACM SIGPLAN Notices, vol. 40, pp. 519–538. ACM, New York (2005)
Chamberlain, B., Callahan, D., Zima, H.: Parallel programmability and the Chapel language. International Journal of High Performance Computing Applications 21(3), 291 (2007)
Clavreul, M., Barais, O., Jézéquel, J.M.: Integrating legacy systems with mde. In: ICSE 2010: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering and ICSE Workshops, Cape Town, South Africa, vol. 2, pp. 69–78. ( May 2010)
Steel, J., Jézéquel, J.M.: On model typing. Journal of Software and Systems Modeling (SoSyM) 6(4), 401–414 (2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Floch, A. et al. (2011). Model-Driven Engineering and Optimizing Compilers: A Bridge Too Far?. In: Whittle, J., Clark, T., Kühne, T. (eds) Model Driven Engineering Languages and Systems. MODELS 2011. Lecture Notes in Computer Science, vol 6981. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-24485-8_45
Download citation
DOI: https://doi.org/10.1007/978-3-642-24485-8_45
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-24484-1
Online ISBN: 978-3-642-24485-8
eBook Packages: Computer ScienceComputer Science (R0)