[pypy-svn] commit/extradoc: arigo: Yesterday night's progress.

Bitbucket commits-noreply at bitbucket.org
Wed Mar 2 17:24:25 CET 2011


1 new changeset in extradoc:

http://bitbucket.org/pypy/extradoc/changeset/cdd265f8fdd8/
changeset:   r3328:cdd265f8fdd8
branch:      extradoc
user:        arigo
date:        2011-03-02 16:36:40
summary:     Yesterday night's progress.
affected #:  1 file (1001 bytes)

--- a/talk/stanford-ee380-2011/talk.txt	Tue Mar 01 16:17:43 2011 -0500
+++ b/talk/stanford-ee380-2011/talk.txt	Wed Mar 02 07:36:40 2011 -0800
@@ -221,6 +221,14 @@
   RPython code into C code (mainly)
 
 
+PyPy's Python interpreter
+-------------------------
+
+* A priori similar to CPython, but written in RPython.
+
+* See demo (py.py)
+
+
 The translation toolchain
 -------------------------
 
@@ -231,12 +239,17 @@
 * See demo
 
 
-PyPy's Python interpreter
--------------------------
+A bit of history
+----------------
 
-* A priori similar to CPython, but written in RPython.
+* Squeak and Scheme48 are also interpreters written in themselves
 
-* See demo (py.py)
+* Or more precisely, like PyPy, a subset of themselves
+
+* But in PyPy, the RPython subset is at a higher level
+
+* General rule: *every aspect that is independent from the high-level
+  description of the interpreter is left out of RPython*
 
 
 RPython is still mostly Python
@@ -268,19 +281,6 @@
 * here, the code in ``f()`` is RPython, but the loop around it is not.
 
 
-A bit of history
-----------------
-
-* Squeak and Scheme48 are also interpreters written in themselves
-
-* Or more precisely, like PyPy, a subset of themselves
-
-* In PyPy, the RPython subset is at a higher level
-
-* General rule: *every aspect that is independent from the high-level
-  description of the interpreter is left out of RPython*
-
-
 
 
 Architecture: the interpreter
@@ -418,4 +418,53 @@
 Architecture: the translation toolchain
 ---------------------------------------------------------------------
 
-xxx
+
+Overview
+--------
+
+* "Translation toolchain": statically compiles RPython code
+
+* Produces C code (or JVM or .NET code, experimentally)
+
+* Every aspect that is independent from the high-level
+  description of the interpreter is left out of RPython
+
+* Instead, they are added during translation
+
+
+Various aspects
+---------------
+
+* The object model, e.g. how to turn RPython classes and instances
+  to C structs
+
+* Garbage collection
+
+* Execution model: regular or stackless
+
+* Just-in-Time compiler
+
+
+Translation overview (1)
+------------------------
+
+* Start with the live RPython program
+
+* Build the Control Flow Graphs (CFGs) of the functions
+
+* Perform global type inference
+
+* We get a type-annotated version of the CFGs
+
+
+Translation overview (2)
+------------------------
+
+* "Lower" the level of the CFGs: transform their Python-like operations
+  into C-like operations
+
+* Do a number of additional transformations to insert the selected "aspects"
+
+* Generate C code from the low-level CFGs
+
+

Repository URL: https://bitbucket.org/pypy/extradoc/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.



More information about the Pypy-commit mailing list