[pypy-svn] rev 1639 - pypy/trunk/doc/funding

pedronis at codespeak.net pedronis at codespeak.net
Thu Oct 9 03:04:09 CEST 2003


Author: pedronis
Date: Thu Oct  9 03:04:08 2003
New Revision: 1639

Modified:
   pypy/trunk/doc/funding/B1.0_objectives.txt
Log:
first draft of a "Beyond the State of the Art" section.


Modified: pypy/trunk/doc/funding/B1.0_objectives.txt
==============================================================================
--- pypy/trunk/doc/funding/B1.0_objectives.txt	(original)
+++ pypy/trunk/doc/funding/B1.0_objectives.txt	Thu Oct  9 03:04:08 2003
@@ -251,7 +251,64 @@
 Beyond State of The Art
 -----------------------------
 
-empty
+Our architecture is based on Object Spaces, and translation.  The
+interpreter's main dispatch loop handles control flow and supporting
+data structures (frame stack, bytecode objects...); each individual
+operation on objects is dispatched to the object space.
+
+Differently from cited related to work, we don't expect to encode a
+fixed single interpreter in all its details in a subset of our VHLL
+(Python). We plan to exploit the flexibility and abstraction gained by
+the using of the VHLL subset and the indirectness of translation, in
+order to weave aspect such as memory management, object layout etc at
+translation time.
+
+In general we will explore for each feature and extension how to best
+implement it by separating concerns between OO-customized Object
+Spaces, other modules also translated, or the pluggable behavior of
+the translation itself.
+
+Many of these aspects are really cross-cutting concerns in the
+original AOP sense. In general our approach relates to the seminal
+AOP ideas in [kiczales97aspectoriented.pdf], although they have not been
+used on the interpreter for a large practical language. Our subset of
+Python in which to express the core interpreter and Object Spaces is
+the component language in the terminology of the paper, while the
+translator which is also a weaver is expressed in full Python.  For
+describing aspects and at system definition time we will be able to
+use the full dynamism of Python.
+
+For debugging and comprehensibility we expect the core interpreter and
+Object Spaces to be runnable as a normal Python program on a Python
+interpreter.
+
+XXX something about what is innovative in the translator itself?
+XXX currently the "The Translator section"
+
+XXX edit?:
+
+Although Psyco was hand-written, large parts have a one-to-one
+correspondence to whole sections of the C Python interpreter. This is
+uncommon for JITs, but Psyco's good results give ample
+proof-of-concept.  Moreover, this property can be explicitely related
+to the DynamoRIO project cited above, which instrumentates the
+interpreter itself.  Indeed, the one-to-one correspondence between
+parts of C Python and Psyco is as follows: to each expression in C
+Python corresponds a more complex expression in Psyco, which does
+instrumentation and optimisations. The difference with DynamoRIO is
+that the latter analyses the machine code resulting from the
+compilation of the interpreter at run-time. In Psyco, the one-to-one
+correspondance is with the C source instead. It could certainly have
+been done by automated analysis of the C source of C Python, but this
+is difficult and error-prone.
+
+In the PyPy project, on the other hand, the source code of the
+interpreter will be written in Python instead of C. This is much
+easier to analyse safely. Thus, the plan is to raise the level further
+and rely on yet another customisation of the translator, to let it
+emit the complex Psyco-style expressions instead of (or in addition
+to) the normal C expressions that would be the direct translation.
+XXX /edit
 
 :DELETE:BEGIN
 
@@ -564,7 +621,7 @@
 OOPSLA '99, Denver, CO, Nov 2, 1999.
 http://research.sun.com/research/kanban/oopsla-vm-wkshp.pdf
 
-[hlzle91optimizing.pdf] Urs Hlzle, Craig Chambers, and David Ungar,
+[hlzle91optimizing.pdf] Urs Hölzle, Craig Chambers, and David Ungar,
 "Optimizing Dynamically-Typed Object-Oriented Languages with Polymorphic
 Inline Caches", ECOOP'91 Conference Proceedings, Geneva, 1991. Published
 as Springer Verlag Lecture Notes in Computer Science 512, Springer Verlag,
@@ -581,4 +638,9 @@
 [ucpy-reverse-engineering-python.pdf] John Aycock and David Pereira and Georges Jodoin, "UCPy: Reverse-Engineering Python", PyCon DC 2003, 9pp.
 http://pages.cpsc.ucalgary.ca/~aycock/papers/ucpy.pdf
 
+[kiczales97aspectoriented.pdf] Gregor Kiczales and John Lamping and
+    Anurag Menhdhekar and Chris Maeda and Cristina Lopes and Jean-Marc
+    Loingtier and John Irwin, "Aspect-Oriented Programming", ECOOP'97
+http://www2.parc.com/csl/groups/sda/publications/papers/Kiczales-ECOOP97/for-web.pdf
+
 :DELETE:END


More information about the Pypy-commit mailing list