Dynamic Code Evolution for Java
Staff - Faculty of Informatics
Start date: 14 April 2010
End date: 15 April 2010
The Faculty of Informatics is pleased to announce a seminar given by Thomas Würthinger
DATE: Wednesday, April 14th, 2010
PLACE: USI Università della Svizzera italiana, room SI-008, Informatics building (Via G. Buffi 13)
Dynamic code evolution is a technique to update a program while it is running.
We modified an existing high-performance production-quality virtual machine to allow arbitrary changes to the definition of loaded classes. Besides adding and deleting fields and methods, we also allow any kind of changes to the class and interface hierarchy. Our modifications to the virtual machine have no negative performance impact on normal program execution and the fast in-place instance update algorithm ensures that the performance characteristics of a change are comparable with performing a full garbage collection run. Standard Java development environments are capable of using the code evolution features of our modified virtual machine, so no additional tools are required.
During the talk, there will also be a live demonstration of a modified version of the Mantisse GUI builder to show the impact of dynamic code evolution on developer productivity.
Thomas Wuerthinger is a PhD student and teaching assistant at the Johannes Kepler University Linz, Austria. Since 2006, he is working in a collaboration with the Java HotSpot VM team at Oracle (formerly Sun Microsystems).
He developed an array bounds check elimination algorithm for the client compiler as well as a graph visualization tool for the server compiler called "IdealGraphVisualizer". This tool is now part of OpenJDK and specialized on visualizing evolving graph data structures. During his two internships at Sun Labs, he worked on the Maxine VM, which is a meta-circular Java VM.
HOST: Prof. Walter Binder