Skip to main content

Design of Multilingual Retargetable Compilers: Experience of the XDS Framework Evolution

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1897))

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.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Lindholm, T., Yellin, F., Joy, B., Walrath, K.: The Java Virtual Machine Specification. Addison-Wesley, Reading (1996)

    Google Scholar 

  2. Gosling, J., Joy, B., Steele, G.: The Java Language Specification. Addison-Wesley, Reading (1996)

    MATH  Google Scholar 

  3. The Modula-2 language international standard. ISO/EEC 10514 (1994)

    Google Scholar 

  4. Holmes, J.: Object-Oriented Compiler Construction. Prentice Hall, Englewood Cliffs (1995)

    MATH  Google Scholar 

  5. IBM Visual Age family products, http://www-4.ibm.com/software/ad/

  6. Gough, K.J.: Bottom-up tree rewriting tool MBURG. SIGPLAN Notices 31(1) (1996)

    Google Scholar 

  7. Dean, J., DeFouw, G., et al.: Vortex: An Optimizing Compiler for Object-Oriented Languages. In: Proc. of OOPSLA 1996, San Jose, CA (October 1996)

    Google Scholar 

  8. 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)

    Chapter  Google Scholar 

  9. Franz, M., Kistler, T.: Slim binaries. Technical report 96-24, Department of Infor- mation and Computer Science, UC Irvine (1996)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. Kienle, H.: j2s: A SUIF Java Compiler. Technical Report TRCS98-18, Computer Science Department. University of California, Santa Barbara (1998)

    Google Scholar 

  12. Aho, A., Sethi, R., Ullman, J.: Compilers: Principles, Techniques and Tools. Addison-Wesley, Reading (1986)

    Google Scholar 

  13. Agesen, O.: The cartesian product algorithm. In: Olthoff, W. (ed.) ECOOP 1995. LNCS, vol. 952, pp. 2–26. Springer, Heidelberg (1995)

    Google Scholar 

  14. 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)

    Google Scholar 

  15. Wirth, N., Reiser, M.: Programming in Oberon. Steps beyond Pascal and Modula. Addison-Wesley, Reading (1992)

    MATH  Google Scholar 

  16. Lajoie, J.: Exception Handling — supporting the runtime mechanism. C++ Report 6(3) (1994)

    Google Scholar 

  17. Pentium Pro Family Developer’s Manual. Volume 2: Programmer’s Reference Manual, Chapter 7, Floating-Point Unit, Intel Corporation (1996)

    Google Scholar 

  18. The InterView Source Code Browser. User’s Guide, http://www.excelsior-usa.com/intervew.html

  19. Leskov, D.: XDS Native Java. Whitepaper, http://www.excelsior-usa.com/jetwp.html

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics