Dynamic Code Evolution for Java

Decanato - Facoltà di scienze informatiche

Data d'inizio: 14 Aprile 2010

Data di fine: 15 Aprile 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)
TIME: 15.30

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.
Next summer, he will be an intern with the JavaScript V8 team of Google in Denmark.

HOST: Prof. Walter Binder