[pypy-svn] r12718 - pypy/dist/pypy/documentation

hpk at codespeak.net hpk at codespeak.net
Sat May 21 22:44:41 CEST 2005


Author: hpk
Date: Sat May 21 22:44:41 2005
New Revision: 12718

Modified:
   pypy/dist/pypy/documentation/translation.txt
Log:
fixed SSA wording and linked it with the indeed
pretty good wikipedia article carl suggested. 

also fixed formatting in that area (i think by
now we are not using very-long-lines anymore) 



Modified: pypy/dist/pypy/documentation/translation.txt
==============================================================================
--- pypy/dist/pypy/documentation/translation.txt	(original)
+++ pypy/dist/pypy/documentation/translation.txt	Sat May 21 22:44:41 2005
@@ -23,18 +23,33 @@
 
 Here are the steps we follow to translate a given program:
 
-1. The complete program is imported.  If needed, extra initialization is performed.  Once this is done, the program must be present in memory is a form that is "static enough" in the sense of RPython_.
-
-2. The `Flow Object Space`_ processes the input program, turning each function independently into a `control flow graph`_ data structure recording sequences of basic operations in "single-style assignment".
-
-3. Optionally, the Annotator_ performs global type inference on the control flow graphs.  Each variable gets annotated with an inferred type.
-
-4. The `RPython typer`_ can use the high-level types inferred by the Annotator to turn the operations in the control flow graphs into low-level operations over low-level types (close to the C types: struct, array, pointer...).
-
-5. One of the Code Generators (XXX not documented yet) turns the optionally annotated/typed flow graphs and produces a source file in a lower-level language: C_, LLVM_, `Common Lisp`_, Pyrex_, Java_, or `Python again`_ (this is used in PyPy to turn sufficiently RPythonic app-level code into interp-level code).
+1. The complete program is imported.  If needed, extra initialization is
+   performed.  Once this is done, the program must be present in memory is
+   a form that is "static enough" in the sense of RPython_.
+
+2. The `Flow Object Space`_ processes the input program, turning each
+   function independently into a `control flow graph`_ data structure
+   recording sequences of basic operations in 
+   static single assignment form `SSA`_.
+
+3. Optionally, the Annotator_ performs global type inference on the
+   control flow graphs.  Each variable gets annotated with an inferred
+   type.
+
+4. The `RPython typer`_ can use the high-level types inferred by the
+   Annotator to turn the operations in the control flow graphs into
+   low-level operations over low-level types (close to the C types: struct,
+   array, pointer...).
+
+   One of the Code Generators (XXX not documented yet) turns the
+   optionally annotated/typed flow graphs and produces a source file in
+   a lower-level language: C_, LLVM_, `Common Lisp`_, Pyrex_, Java_, or
+   `Python again`_ (this is used in PyPy to turn sufficiently RPythonic
+   app-level code into interp-level code).
 
 6. This lower-level source file is compiled to produce an executable.
 
+.. _`SSA`: http://en.wikipedia.org/wiki/Static_single_assignment_form
 .. _`translator.py`: http://codespeak.net/svn/pypy/dist/pypy/translator/translator.py
 .. _`play around`: getting_started.html#trying-out-the-translator
 .. _`Flow Object Space`: objspace.html#the-flow-object-space



More information about the Pypy-commit mailing list