[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[pdt-dev] Representing PDT for the Google Summer of Code

Hello guys,

Last week I submitted an application for the Google Summer of Code on
the behalf of the Eclipse Foundation.
My proposal is called "Type inference for APDT" and bascically I would
like to contribute in PDT type inference engine and using it inside
PDT (please find the proposal attached).

Unfortunately and there is no PDT committers who are rating the
applications for the Summer of Code and I think PDT should be
If you would to register for the applications you would like to see
accepted, please follow the instruction of this post:

Also I wanted to know if there is someone from the PDT project who
would like to mentor me in case of acceptance ?

Best regards,


William Candillon
 William Candillon {wcandillon@xxxxxxxxx}

Project description:
The Aspect PHP Development Tools (APDT) project provides Eclipse platform based tool support for AOSD with PHPAspect. Our goal is to deliver a user experience that is consistent with the PHP Development Tools (PDT) when working with PHPAspect projects and resources. This plugin provides an integration layer between the PHPAspect weaver, runtime and Eclipse/PDT extension points.
PHPAspect and APDT have been both created during the Google Summer of Code program, respectively in 2006 on behalf of the PHP community and in 2007 on behalf of Google.
This was also an opportunity to contribute back on the PDT project through bug fixes, a publication in progress and we created SmartyPDT as a showcase of PDT extensibility (http://smartypdt.googlecode.com).

In the effort of improving APDT and its integration with both PDT and PHPAspect, I would like to work on type inference for APDT.
Due to the highly dynamic nature of PHP, most of PHPAspect joinpoints can't be determined statically: PHPAspect weaves hooks in the source code in order to perform type checking at runtime.
When a project is woven, a significant amount of hooks can be inserted in the source even though it can statically analyzed that none of these will trigger a code-advice: this is where type inference comes in.
APDT and PDT have both an integration layer with DLTK (for the compiler AST) which as an experimental type inference framework used to improve code analysis.
The type inference could be also used to improve APDT UI by providing aspect type information in the editor.

Project timeline:
I will use the two weeks to review PHP type inference goals and writing test cases for it. The next two weeks will be used to write the missing goals and make sure there are compliant with the test cases.
Then I will implement weaving process getting help for type inference information and using xquery to perform source transformation (1 month).
The last month will be splitted in two parts.  First part is to introduce type information in APDT editor and UI plugin. Last part is to prepare APDT for a first release. This could be done with an incubation on eclipse.org under the wing of the PDT or AJDT project.
I would also like to take advantage of the type inference to improve code completion in the APDT editor but also to implement the code-advices markers, which is an AJDT-like feature.

Expected results:
The main benefit of this project is to improve integration between APDT and PDT, APDT and PHPAspect.
This would also be a great showcase for developers of dynamic language  tools and who are looking to implement type inference in their plugin.
The approach of getting help from type inference to implement AOP in a dynamic language  would be a very interesting contribution in the Aspect-Oriented Software Development community
With my previous Summer of Code, I gained the experience to make sure that I can get thinks done in the program timeframe.

About me:
I'm a 21 years-old engineering student at Telecom Lille 1, France.
To find out more about me you can check my resume: http://wcandillon.netcv.org 

APDT website: http://apdt.googlecode.com
An overview of APDT is available here: https://eclipsecon.greenmeetingsystems.com/attachments/download/124
PHPAspect website: http://phpaspect.org