Kava - Using Byte code Rewriting to add Behavioural Reflection to Java

Uložené v:
Podrobná bibliografia
Názov: Kava - Using Byte code Rewriting to add Behavioural Reflection to Java
Autori: Ian Welch And, Ian Welch, Robert J. Stroud
Prispievatelia: The Pennsylvania State University CiteSeerX Archives
Zdroj: http://www.cs.ncl.ac.uk/research/pubs/trs/papers/704.pdf.
Informácie o vydavateľovi: USENIX Association
Rok vydania: 2001
Zbierka: CiteSeerX
Predmety: Reflection, metaobject protocols, bytecode engineering
Popis: Many authors have proposed using byte code rewriting as a way of adapting or extending the behaviour of Java classes. There are toolkits available that simplify this process and raise the level of abstraction above byte code. However, to the best of our knowledge, none of these toolkits provide a complete model of behavioural reflection for Java. In this paper, we describe how we have used load-time byte code rewriting techniques to construct a runtime metaobject protocol for Java that can be used to adapt and customise the behaviour of Java classes in a more flexible and abstract way. Apart from providing a better semantic basis for byte code rewriting techniques, our approach also has the advantage over other reflective Java implementations that it doesn't require a modified compiler or JVM, can operate on byte code rather than source code and cannot be bypassed. In this paper we describe the implementation of Kava, our reflective implementation of Java, and discuss some of the linguistic issues and technical challenges involved in implementing such a tool on top of a standard JVM. Kava is available from http://www.cs.ncl.ac.uk/research/dependability/reflection.
Druh dokumentu: text
Popis súboru: application/pdf
Jazyk: English
Relation: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.9.6356; http://www.cs.ncl.ac.uk/research/pubs/trs/papers/704.pdf
Dostupnosť: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.9.6356
http://www.cs.ncl.ac.uk/research/pubs/trs/papers/704.pdf
Rights: Metadata may be used without restrictions as long as the oai identifier remains attached to it.
Prístupové číslo: edsbas.CF94E919
Databáza: BASE
Popis
Abstrakt:Many authors have proposed using byte code rewriting as a way of adapting or extending the behaviour of Java classes. There are toolkits available that simplify this process and raise the level of abstraction above byte code. However, to the best of our knowledge, none of these toolkits provide a complete model of behavioural reflection for Java. In this paper, we describe how we have used load-time byte code rewriting techniques to construct a runtime metaobject protocol for Java that can be used to adapt and customise the behaviour of Java classes in a more flexible and abstract way. Apart from providing a better semantic basis for byte code rewriting techniques, our approach also has the advantage over other reflective Java implementations that it doesn't require a modified compiler or JVM, can operate on byte code rather than source code and cannot be bypassed. In this paper we describe the implementation of Kava, our reflective implementation of Java, and discuss some of the linguistic issues and technical challenges involved in implementing such a tool on top of a standard JVM. Kava is available from http://www.cs.ncl.ac.uk/research/dependability/reflection.