Achievements
MatParser:
Created an advanced data-flow analysis tools based on Paul Feautrier's PIP algorithm. Currently only known public domain available compiler that uses this technique.
Extended the technique with non-linear functions like Mod/Div/Floor/Ceil.
Implemented a number of smart optimizations that causes that the result of MatParser to contain almost no redundant code.
MatParser has a well-engineered software architecture. This allows for the use of other solvers, like for example the OMEGA solver of Pugh.
Implemented a JAVA front-end on top of the original "C" PIP solver.
Implemented MatParser completely in JAVA. The resulting compiler is platform independent except for the PIP solver part. This requires the availability of a (G)CC compiler.
Tested the MatParser compiler on a number of well-known problems
QR
Faddeev
Gaussian Elimination
Singular Value Decomposition
DgParser:
Created a tool that can convert a Single Assignment Program into a Polyhedral Reduced Dependence Graph representation (PRDG).
A PRDG description is more amenable to mathematical manipulation of a Dependence Graph.
Implemented a JAVA front-end on top of the Polylib library. This makes the full functionality of Polylib available as Java routines.
Used the Polylib library extensively to obtained correct Polyhedral descriptions.
Created a XML dialect to represent conveniently the PRDG in XML format.
PANDA:
Created a tool that can convert a PRDG description into a Process Network description.
These Process Network descriptions expose the parallelism available in the original Matlab Program.
Used the Ehrhart polynomial technique, to obtain efficient representation of the computational and communication load in the Process Network description.
This makes a compile-time analysis of the Process Network possible.
Implemented a Code Generation part to generate Ptolemy II actors and network description. The Ptolemy II actors are generated in Java. The network description is generated in MoML, the Ptolemy II XML dialect to describe systems.
The Code generation part can also generate other formats in C++ format.
Implemented a JAVA front-end on top of the Polylib library that can operate with Ehrhart Polynomials. This makes the full functionality of Polylib and Ehrhart polynomials available as Java routines.
Implemented a three-step approach to derive the actors of the Process Networks.