5 JPie: An Environment for Live Software Construction in Java
Tuesday, 28 October
15:00-15:45
Wednesday, 29 October
15:00-15:45
Kenneth Goldman,
Washington University in St. Louis,
kjg@cse.wustl.edu
|
|
JPie is a tightly integrated development environment supporting live
object-oriented software construction in Java. JPie embodies the
notion of a dynamic class whose signature and implementation can be
modified at run time, with changes taking effect immediately upon
existing instances of the class. The result is complete elimination
of the edit-compile-test cycle.
Dynamic classes are precompiled and then execute in a semi-interpreted
manner using an internal representation of the dynamic portions of the
class definition. Dynamic classes fully interoperate with compiled
classes. Consequently, JPie users have access to the entire Java API,
may create dynamic classes that extend compiled classes, and can
override their methods on the fly. Instances of compiled classes may
hold type-safe references to instances of dynamic classes, and may
call methods on them polymorphically. All of these capabilities are
achieved without modification of the language or virtual machine.
JPie users create and modify class definitions through direct
manipulation of visual representations of program abstractions. The
visual representations expose the Java execution model, while removing
the possibility of syntax errors and enabling immediate type-checking
feedback.
In this demonstration, we will illustrate the central features of JPie
in the course of constructing an example application. These will
include dynamic declaration of instance variables and methods, dynamic
modification of method bodies and threads, dynamic user interface
construction and event handling, and on-the-fly exception handling in
JPie's integrated thread-oriented debugger.
|