Newsgroups: php.internals,php.pecl.dev Path: news.php.net Xref: news.php.net php.internals:23813 php.pecl.dev:3815 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 60574 invoked by uid 1010); 31 May 2006 06:45:39 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 60559 invoked from network); 31 May 2006 06:45:39 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 31 May 2006 06:45:39 -0000 X-PHP-List-Original-Sender: wcandillon@gmail.com X-Host-Fingerprint: 64.233.184.227 wr-out-0506.google.com Linux 2.4/2.6 Received: from ([64.233.184.227:9529] helo=wr-out-0506.google.com) by pb1.pair.com (ecelerity 2.0 beta r(6323M)) with SMTP id EE/13-07504-19B3D744 for ; Wed, 31 May 2006 02:45:37 -0400 Received: by wr-out-0506.google.com with SMTP id i34so1103636wra for ; Tue, 30 May 2006 23:45:35 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=FFA+4o9qA0+RYKNQiHNyZm04iNNEc3qEmEv3TfpJliCvAEyZSj/ZowR8/c+rk4SKYJY9/A8hVHWDmKdvKQaQZ5jQwzrq3ElMtooZuDDDJAHmV8MNxoyt+AaPve21ZknaMcZNa5rAAY9Uc2ZSE7DAAeqAn0wE6rCwUxJ6G7YO7T8= Received: by 10.54.109.16 with SMTP id h16mr1267652wrc; Tue, 30 May 2006 23:45:35 -0700 (PDT) Received: by 10.54.66.10 with HTTP; Tue, 30 May 2006 23:45:35 -0700 (PDT) Message-ID: <43b5c44e0605302345s716bae77ncf5e335d6ede7da@mail.gmail.com> Date: Wed, 31 May 2006 08:45:35 +0200 To: internals , pecl-dev@lists.php.net MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Subject: [Soc 2006] phpAspect From: wcandillon@gmail.com ("William Candillon") Hello everyone, My name is William Candillon. I'm developing the phpAspect project (http://phpaspect.org) for the Google Summer of Code 2006. My mentor is Sebastian Bergmann. Phpaspect is a PHP language extension which implements aspect-oriented programming. The phpaspect compiler weaves aspects implementing crosscutting concerns into PHP source code. The weaving process is static (before source code execution) and based on Lex & Yacc analysis. The woven PHP source code can be executed with any PHP 5 version. This new version that I'm writing for the google soc is written in C and serialize automatically a PHP source code into an XML AST. The aspects files are also serialized from PHP to XML AST. Then I'll apply XSLT style sheet to the representation XML of the aspects in order to generate a final XSLT style sheet which will perform source code transformations on the business logic: http://phpaspect.org/wiki/lib/exe/fetch.php?w=700&h=274&cache=cache&media=weaver2.png Adopting this new approach will result in the following benefits. The lexical and syntax analysis will be independent of any PHP version. Existing XML tools like XSTL or XPath engine could be heavily reused to make the implementation significantly shorter and improve weaving performances. Finally, it will introduce more flexibility in terms of the aspect language. For example, I could use the power of Xpath expression to introduce more logical operators in the aspect syntax. With this architecture, the compatibility with PHP 6 and features like namespaces will be very easy to implement. I am open to any suggestions or comments about this project and the implementing idea. Best regards, William -- William Candillon Telecom Lille Student E-mail: wcandillon@elv.enic.fr Tel: +33(0) 6 67 99 13 16 CV: http://wcandillon.netcv.org Resume: http://wcandillon.en.netcv.org