A Dynamic Virtual Machine and Runtime Partial Evaluation
Date Friday, June 2, 2000
Time 2-3pm
Speaker Greg Sullivan
Affiliation MIT AI Lab
Abstract Our 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
Bio Research Scientist