|A Dynamic Virtual Machine and Runtime Partial Evaluation|
|Date||Friday, June 2, 2000|
|Affiliation||MIT AI Lab|
goal is to provide a language implementation infrastructure that will support
both relatively static languages such as Java and also more dynamic languages
such as Dylan and CLOS. The Dynamic Virtual Machine (DVM) is a first step
in that direction, providing a Scheme-like "machine language" augmented
with a very general notion of types. The DVM also supports generic functions
and runtime method addition and removal.
The DVM supports a high degree of dynamism, through runtime method and type definition, and also provides robust reflection on the current state of computation. Efficient implementation in the face of extreme dynamism and reflection is a challenge, and "runtime partial evaluation" is a general mechanism for high level dynamic optimization. The general idea is simple: fold computations that depend on "mostly static" data, while registering dependencies so that we can undo the optimizations if our assumptions are violated.
The Dynamic Virtual Machine, and also my implementation of runtime partial evaluation, are themselves very dynamic. Feedback and discussion from the audience will be solicited and appreciated.
|Location||545 Technology Square (aka "NE43")|
|Room||8th Floor Play Room|