PyPy's Approach to Virtual Machine Construction
Armin Rigo and Samuele Pedroni
Abstract:
The PyPy project seeks to prove both on a research and a practical level the feasibility of constructing a virtual machine (VM) for a dynamic language in a dynamic language - in this case, Python. The aim is to translate (i.e. compile) the VM to arbitrary target environments, ranging in level from C/Posix to Smalltalk/Squeak via Java and CLI/.NET, while still being of reasonable efficiency within these environments.A key tool to achieve this goal is the systematic reuse of the Python language as a system programming language at various levels of our architecture and translation process. For each level, we design a corresponding type system and apply a generic type inference engine - for example, the garbage collector is written in a style that manipulates simulated pointer and address objects, and when translated to C these operations become C-level pointer and address instructions.
Published:
"PyPy's Approach to Virtual Machine Construction"
Armin Rigo and Samuele Pedroni.
Dynamic Languages Symposium (DLS'06)
, Portland, Oregon, October 2006.
Download:
Paper:
BibTeX Entry:
@inproceedings{1176753,
author = {Rigo, Armin and Pedroni, Samuele},
title = {PyPy's approach to virtual machine construction},
booktitle = {OOPSLA '06: Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications},
year = {2006},
isbn = {1-59593-491-X},
pages = {944--953},
location = {Portland, Oregon, USA},
doi = {http://doi.acm.org/10.1145/1176617.1176753},
publisher = {ACM},
address = {New York, NY, USA},
}