ASPA Homepage

What is ASPA?

ASPA attempts to automate the process of translating ASP pages into PHP. The supported languages are JScript and VBScript.

Design of ASPA

ASPA is based on compiler technology. The source files are transformed into a stream of tokens and lexical analysis is performed during the process. A Parser (each language has it's own parser) uses the tokens in order to generate the Abstract Syntax Tree (AST) and performs syntax analysis. The AST is fed to a Tree Parser (see and the information stored in the AST along with information stored in XML files are used to translate the original AST into another AST which encodes PHP code. The XML files are used as templates for the translation of ActiveX components methods calls into method calls of PHP of equivalent functionality. The user can modify the XML files to add support for new ActiveX components. The final AST is transformed into PHP source code.

ASPA is under development. Some features are not implemented and more descriptions of ActiveX components are required. Currently most of the built-in functions of VBScript and the built-in objects of JScript are supported. Also, the Request, Response, Sever and Session objects are partially supported since some of the included methods in these objects are missing. We anticipate that the missing features will be implemented soon with the help provided by the Free Software community.


In order to use ASPA you should have a Java Virtual Machine. If you want to build the project, you'll also need ant.

Libraries needed at runtime:

Libraries needed at compile time:

These libraries are included in the source distribution lib/ directory.

For more information about building and running the program, see the trunk/README file.

Design Notes

Please visit the Notes page.


Please visit the Documentation page.

Sample Applications

Please visit the Sample Applications page.


To get access to the latest source code do:
svn checkout

Please bare in mind that you will have to dowload separately any libraries mentioned in the Dependencies section.

For bundled software, visit the Releases page

Mailing List

Information on subscribing to the mailing list of the project can be found here.


For more information about this project, please contact the project maintainer at the following address: < anakreonmejdi at >


For a complete list of local wiki pages, see TitleIndex.