Constructing a metacircular Virtual machine in an exploratory programming environment
Constructing a metacircular Virtual machine in an exploratory programming environment
复制标题
在探索性编程环境中构建元循环虚拟机
DOI:
--
复制
发表时间:
2005
期刊:
影响因子:
--
通讯作者:
Alex Ausch
中科院分区:
文献类型:
--
作者:
D. Ungar;Adam Spitz;Alex Ausch
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 environ-ment 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 ob-jects 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 sim-plicity 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.