[pypy-svn] r3704 - pypy/trunk/doc/funding

nico at codespeak.net nico at codespeak.net
Fri Apr 2 12:19:54 CEST 2004


Author: nico
Date: Fri Apr  2 12:19:54 2004
New Revision: 3704

Modified:
   pypy/trunk/doc/funding/B6.7.wp10_aspects_and_contracts.txt
Log:
more detailed description

Modified: pypy/trunk/doc/funding/B6.7.wp10_aspects_and_contracts.txt
==============================================================================
--- pypy/trunk/doc/funding/B6.7.wp10_aspects_and_contracts.txt	(original)
+++ pypy/trunk/doc/funding/B6.7.wp10_aspects_and_contracts.txt	Fri Apr  2 12:19:54 2004
@@ -38,14 +38,46 @@
 available from Logilab, to better integrate with the language
 and greatly simplify the design and enhance the performance.
 
+Aspect-Oriented Programming is a technique that improves on
+Object-Oriented Programming by facilitating the division of
+concerns in the implementation of classes. Some behaviors
+may be made into aspects that are later weaved with the existing 
+implementation of classes for which one wants to add the aspect's 
+behavior. An example would be a Logger aspect weaved with a
+class to provide logging functionnality without the class
+having any knowledge of logging.
+
+Logilab already published an implementation of aspects for Python, 
+but it limited by the language in the sense that weaving code consists 
+of wrapping methods instead of actually producing new code or
+modifying existing code. This adds and overhead and other constraints
+that would be removed with a PyPy-based implementation. Once the
+equivalent of Logilab's aspect library will be implemented in PyPy,
+further progress will be made using articles and research tools from
+wwww.aosd.net, the aspect-oriented software development comunity and 
+research portal.
+
 **Task 2**
 
-This aspect enabled interpreter will be used to offer
-design-by-contract facilities as seen in the Eiffel programming
-language and the current aspect-oriented library. 
-This will also allow us to implement advanced static
-checking and code correctness checking capabilities, thus furthering
-the work done with the pychecker and pylint tools.
+Implement design-by-contract using the aspect-enabled interpreter.
+
+Design-by-contract, as first exhibited by the Eiffel object-oriented
+programming language, can be implemented as a specific aspect as
+was done by Logilab in its aspect library. A PyPy-based implementation
+would allow for further experiments in terms of syntax improvements
+on the contract definition, but also better performance.
+
+**Task 3**
+
+Implement advanced static checking and code correctness checking capabilities, 
+thus furthering the work done with the pychecker and pylint tools.
+
+Static checking tools for Python already exist, but still have difficulties
+at the moment when it comes to type checking and inference. The implementation
+of static checking in PyPy will benefit from PyPy's runtime optimisation
+mechanism based for part on type inference, but also from articles describing
+the implementation of type checking and type inference for other languages
+and from existing implementations of pychecker and Logilab's pylint tools.
 
 .. include:: wp-tableend.asc
 .. include:: wp-tablebegin.asc


More information about the Pypy-commit mailing list