Nothing Special   »   [go: up one dir, main page]

Skip to main content

Byte Code Engineering

  • Conference paper
JIT’99

Part of the book series: Informatik aktuell ((INFORMAT))

Abstract

The term “Java” is used to denote two different concepts: the language itself and the related execution environment, the Java Virtual Machine (JVM), which executes byte code instructions. Several research projects deal with byte code-generating compilers or the implementation of new features via byte code transformations. Examples are code optimization, the implementation of parameterized types for Java, or the adaptation of run-time behavior through load-time transformations. Many programmers are doing this by implementing their own specialized byte code manipulation tools, which are, however, restricted in the range of their reusability. Therefore, we have developed a general purpose framework for the static analysis and dynamic creation or transformation of byte code. In this paper we present its main features and possible application areas.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 69.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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. O. Agesen, S. N. Freund, and J. C. Mitchell. Adding Type Parameterization to the Java Language. In Proceedings OOPSLA’97, Atlanta, GA, 1997.

    Google Scholar 

  2. A. Aho, R. Sethi, and J. Ullman. COMPILERS Principles, Techniques and Tools. Addison-Wesley, 1985.

    Google Scholar 

  3. B. Bokowski and M. Dahm. Poor Man’s Genericity for Java. In Clemens Cap, editor, Proceedings JIT98. Springer, 1998.

    Google Scholar 

  4. B. Bokowski and A. Spiegel. Barat - A Front-End for Java. Technical report, Freie Univer-sität Berlin, 1998.

    Google Scholar 

  5. Per Bothner. The gnu.bytecode package, http://www.cygnus.com/ bothner/ gnu. bytecode/, 1998.

  6. Gerald Brose. Reflection in Java, CORBA and JacORB. In Clemens Cap, editor, Proceedings JIT98. Springer, 1998.

    Google Scholar 

  7. Geoff Cohen, Jeff Chase, and David Kaminsky. Automatic Program Transformation with JOIE. In Proceedings USENIX Annual Technical Symposium, 1998.

    Google Scholar 

  8. Pascal Costanza. The ClassFilters package. Universität Bonn, http://www.es..

  9. M.Dahm. Byte Code Engineering with the JavaClass API. Technical report, Freie Universität Berlin, 1998.

    Google Scholar 

  10. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.

    Google Scholar 

  11. A. Goldberg and D.Robson. Smalltalk - The Language. Addison-Wesley, 1983.

    Google Scholar 

  12. Michael Golm and Jürgen Kleinöder. metaXa and the Future of Reflection. In Workshop on Reflective Programming in C++ and Java, 1998.

    Google Scholar 

  13. J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison-Wesley, 1996.

    Google Scholar 

  14. JavaSoft. Reflection API. http://java.sun.eom/products/jdk/l, 1998.

  15. Ralph Keller and Urs Hölzle. Binary Component Adaptation. In Eric Jul, editor, Proceedings ECOOP’98. Springer, 1998.

    Google Scholar 

  16. Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-Oriented Programming. Technical report, Xerox Palo Alto Research Center, 1997.

    Google Scholar 

  17. Han Bok Lee and Benjamin G. Zorn. BIT: A Tool for Instrumenting Java Bytecodes. In Proceedings USENIX Symposium on Internet Technologies and Systems, 1998.

    Google Scholar 

  18. Sheng Lian and Gilad Bracha. Dynamic Class Loading in the Java Virtual Machine. In Proceedings OOPSLA’98, 1998.

    Google Scholar 

  19. Tim Lindholm and Frank Yellin. The Java Virtual Machine Specification. Addison-Wesley, 1997.

    Google Scholar 

  20. J. Meyer and T. Downing. Java Virtual Machine. O’Reilly, 1997.

    Google Scholar 

  21. A.C. Myers, J. A. Bank, and B. Liskov. Parameterized Types for Java. In Proceedings POPL’97, Paris, France, 1997.

    Google Scholar 

  22. M. Thies and U. Kastens. Statische Analyse von Bibliotheken als Grundlage dynamischer Optimierung. In Clemens Cap, editor, Proceedings JIT98. Springer, 1998.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Dahm, M. (1999). Byte Code Engineering. In: Cap, C.H. (eds) JIT’99. Informatik aktuell. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-60247-4_25

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-60247-4_25

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66464-2

  • Online ISBN: 978-3-642-60247-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics