Abstract
The XDS framework has been developed since 1993. During this time, it has been serving as a production compiler construction framework as well as a base for research projects. Completely written in Oberon-2, XDS uses a mixed design technique amalgamating modular and object-oriented approaches. It combines advantages of both approaches, at the same time avoiding drawbacks inherent to each of them if used separately. In this paper we set out how the mixed design approach contributes to extensibility of the framework with respect to including support for new input languages and target architectures and implementing new optimizations. In the first part of the paper we give an overview of the XDS framework architecture emphasizing which parts are worth applying the object-oriented design. In the second part, we describe our experience of extending XDS with support for the Java language and implementing interprocedural and object-oriented optimizations.
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
Lindholm, T., Yellin, F., Joy, B., Walrath, K.: The Java Virtual Machine Specification. Addison-Wesley, Reading (1996)
Gosling, J., Joy, B., Steele, G.: The Java Language Specification. Addison-Wesley, Reading (1996)
The Modula-2 language international standard. ISO/EEC 10514 (1994)
Holmes, J.: Object-Oriented Compiler Construction. Prentice Hall, Englewood Cliffs (1995)
IBM Visual Age family products, http://www-4.ibm.com/software/ad/
Gough, K.J.: Bottom-up tree rewriting tool MBURG. SIGPLAN Notices 31(1) (1996)
Dean, J., DeFouw, G., et al.: Vortex: An Optimizing Compiler for Object-Oriented Languages. In: Proc. of OOPSLA 1996, San Jose, CA (October 1996)
Saito, H., Stravrakos, N., et al.: The Design of the PROMIS Compiler. In: Jähnichen, S. (ed.) CC 1999. LNCS, vol. 1575, pp. 214–229. Springer, Heidelberg (1999)
Franz, M., Kistler, T.: Slim binaries. Technical report 96-24, Department of Infor- mation and Computer Science, UC Irvine (1996)
Gough, K.J.: Multi-language, Multi-target Compiler Development: Evolution of the Gardens Point Compiler Project. In: Mössenböck, H. (ed.) JMLC 1997. LNCS, vol. 1204. Springer, Heidelberg (1997)
Kienle, H.: j2s: A SUIF Java Compiler. Technical Report TRCS98-18, Computer Science Department. University of California, Santa Barbara (1998)
Aho, A., Sethi, R., Ullman, J.: Compilers: Principles, Techniques and Tools. Addison-Wesley, Reading (1986)
Agesen, O.: The cartesian product algorithm. In: Olthoff, W. (ed.) ECOOP 1995. LNCS, vol. 952, pp. 2–26. Springer, Heidelberg (1995)
Shelekhov, V., Kuksenko, S.: On the Practical Static Checker of Semantic Run-time Errors. In: Proc. of the 6th Asia Pacific Software Engineering Conference APSEC 1999, Japan. IEEE Computer Society Press, Los Alamitos (1999)
Wirth, N., Reiser, M.: Programming in Oberon. Steps beyond Pascal and Modula. Addison-Wesley, Reading (1992)
Lajoie, J.: Exception Handling — supporting the runtime mechanism. C++ Report 6(3) (1994)
Pentium Pro Family Developer’s Manual. Volume 2: Programmer’s Reference Manual, Chapter 7, Floating-Point Unit, Intel Corporation (1996)
The InterView Source Code Browser. User’s Guide, http://www.excelsior-usa.com/intervew.html
Leskov, D.: XDS Native Java. Whitepaper, http://www.excelsior-usa.com/jetwp.html
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Mikheev, V.V. (2000). Design of Multilingual Retargetable Compilers: Experience of the XDS Framework Evolution. In: Weck, W., Gutknecht, J. (eds) Modular Programming Languages. JMLC 2000. Lecture Notes in Computer Science, vol 1897. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10722581_19
Download citation
DOI: https://doi.org/10.1007/10722581_19
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67958-5
Online ISBN: 978-3-540-44519-7
eBook Packages: Springer Book Archive