[pypy-svn] r57878 - pypy/extradoc/talk/osdc2008

mwh at codespeak.net mwh at codespeak.net
Sat Sep 6 10:56:20 CEST 2008


Author: mwh
Date: Sat Sep  6 10:56:18 2008
New Revision: 57878

Modified:
   pypy/extradoc/talk/osdc2008/paper.txt
Log:
more copy-paste-adaptation of my slides

Modified: pypy/extradoc/talk/osdc2008/paper.txt
==============================================================================
--- pypy/extradoc/talk/osdc2008/paper.txt	(original)
+++ pypy/extradoc/talk/osdc2008/paper.txt	Sat Sep  6 10:56:18 2008
@@ -80,10 +80,57 @@
 PyPy's Big Idea And The PyPy Meta-Platform
 ------------------------------------------
 
+ * Take a description of the Python programming language
+ * Analyze this description, for example:
 
-The LxOxP problem
------------------
+  * Decide whether to include stackless- or psyco-like features
+  * Decide which GC to use
+  * Decide the target platform
+
+ * Translate to a lower-level, efficient form
+
+XXX Get copy of that image in here somehow.
+
+We chose to specify the Python language by writing an implementation
+if Python in a restricted subset of Python that is amenable to
+analysis.  This let us write unit tests for parts of our
+specification/implementation before we had the whole thing done, and
+also let us test the whole specification/implementation before the code
+that analysed the specification/implementation was written.
+
+The code that does the analysis -- now revealed in its true colours to
+basically be a compiler for this restricted subset of Python -- is
+generally referred to as the 'translator.  It is unlike most compilers
+takes as input live Python objects (as opposed to source code).  It
+abstractly interprets the bytecode of functions to produce flow
+graphs.  Further layers of abstract interpretation perform more
+analysis and gradually reduce the level of abstraction before finally
+C or other source code is generated
+
+The *LxOxP* problem
+-------------------
+
+We'd written this compiler framework, with only one expected
+non-trivial input (our Python interpreter).  We realized that it would
+be suitable for implementations of other dynamically-typed programming
+languages.  Now have implementations of Prolog, JavaScript and Scheme
+(to varying extents)
+
+This leads to one of PyPy's meta-goals, ameliorating the so-called
+LxOxP problem: given
+
+  * L dynamic languages
+  * O target platforms
+  * P implementation decisions
+
+we don't want to have to write LxOxP different interpreters by hand.
+PyPy aims to reduce this to an L+O+P problem:
+
+ * Implement L language front-ends
+ * Write backends for O platforms
+ * Take P implementation decisions
 
+Then let the magic of PyPy(TM) tie it all together :-)
 
 Status
 ------



More information about the Pypy-commit mailing list