OBJECT-ORIENTED PROGRAMMING, SYSTEMS, LANGUAGES and APPLICATIONS
 
 
Program
 


Program (2mb PDF)

Explore
  Invited Speakers
  Onward!
  Panels
  Workshops
Discover
  Research Papers
  Student Research Comp.
  Posters
  Doctoral Symposium
  Educators' Symposium
  Wiki Symposium
  Dynamic Lang. Symp.
Understand
  Tutorials
  Essays
  Practitioner Reports
  Demonstrations
Create
  DesignFest
  Lightning Talks
  FlashBoF
  Instant Arts School Exp.
 
Other Events
 
Resort Map (364kb PDF)
 
Resort Map (JPG)

 

 
Basket
 

view, help

"Constructing a Metacircular Virtual Machine in an Exploratory Programming Environment"

 

 
Page
 

Printer-friendly

 
 
  > Onward! > Onward Presentations 1: Exploration

 : Tuesday

Constructing a Metacircular Virtual Machine in an Exploratory Programming Environment

Town and Country Room
Tuesday, 13:30, 45 minutes

 


 
7·8·9·10·11·12·13·14·15·16·17·18·19·20·21

David Ungar, Sun Microsystems Laboratories
Adam Spitz, Sun Microsystems Laboratories
Alex Ausch, Sun Microsystems Laboratories

Can virtual machine developers benefit from religiously observing the principles more often embraced for exploratory programming? To find out, we are concurrently constructing two artifacts?a Self VM entirely in Self (the Klein VM), and a specialized development environment?with strict adherence to pure object-orientation, metacircularity, heavy code reuse, reactivity, and mirror-based reflection. Although neither artifact is yet complete, the environment supports many remote debugging and incremental update operations, and the exported virtual machine has successfully run the whole compiler.

As a result of our adherence to these principles, there have been both positive and negative consequences. We have been able to find and exploit many opportunities for parsimony. For example, the very same code creates objects in the bootstrap image, builds objects in the running VM, and implements a remote debugger. On the other hand, we have been forced to expend effort to optimize the performance of the environment. Overall, this approach trades off the performance of the environment against the architectural simplicity and ease of development of the resulting VM artifact. As computers continue to improve in performance, we believe that this approach will increase in value.

 
.