ACM Home Page
Please provide us with feedback. Feedback
PyPy's approach to virtual machine construction
Full text PdfPdf (255 KB)
Source Dynamic Languages Symposium archive
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications table of contents
Portland, Oregon, USA
SESSION: Dynamic languages symposium chair's welcome table of contents
Pages: 944 - 953  
Year of Publication: 2006
ISBN:1-59593-491-X
Authors
Armin Rigo  Heinrich-Heine-Universität Düsseldorf, Düsseldorf, Deutschland
Samuele Pedroni  AB Strakt, Göteborg, Sweden
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 18,   Downloads (12 Months): 89,   Citation Count: 6
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1176617.1176753
What is a DOI?

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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
C. S. Ananian. The static single information form. Master's thesis, Massachusetts Institute of Technology, September 1999.
 
3
M. Arnold, S. Fink, D. Grove, M. Hind, and P. F. Sweeney. Architecture and policy for adaptive optimization in virtual machines. Technical Report 23429, IBM Research, November 2004.
 
4
AT&T. Graphviz - graph visualization software. http://www.graphviz.org/.
 
5
 
6
H. Boehm. A garbage collector for C and C++. http://www.hpl.hp.com/personal/Hans_Boehm/gc/.
 
7
 
8
G. Bracha. Pluggable type systems. In OOPSLA04 Workshop on Revival of Dynamic Languages, October 2004.
9
10
11
 
12
 
13
R. Kelsey. Pre-scheme: A scheme dialect for systems programming.
 
14
 
15
R. Milner. A theory of type polymorphism in programming. J. Comput. Syst. Sci., 17(3):348--375, 1978.
 
16
PyPy Team. PyPy - Architecture Overview. Web page. http://codespeak.net/pypy/dist/pypy/doc/archi-tecture.html.
 
17
PyPy Team. PyPy - Translation. Web page, in-progress. http://codespeak.net/pypy/dist/pypy/doc/trans-lation.html.
 
18
PyPy Team. Complete python implementation running on top of cpython. Technical report, PyPy Consortium, 2005. http://codespeak.net/svn/pypy/extradoc/eu-report/.
19
 
20
A. Rigo, M. Hudson, and S. Pedroni. Compiling dynamic language implementations. Technical report, PyPy Consortium, 2005. http://codespeak.net/svn/pypy/extradoc/eu-report/.
21
 
22
G. van Rossum et al. CPython 2.4.3, March 2006. http://www.python.org/download/releases/2.4.3/.
 
23
24

CITED BY  6

Collaborative Colleagues:
Armin Rigo: colleagues
Samuele Pedroni: colleagues