A hybrid imperative and functional programming language which provides static checking of pre- and post-conditions.
Java Compiler Kit
A straightforward implementation of a Java compiler in Java, designed with extensibility in mind. This was used as a foundation for several prototype static analysis tools, such as the JPure tool for purity checking.
Tutte polynomials play an import role in graph theory, combinatorics, matroid theory, knot theory, and experimental physics. This project involved developing a highly efficient algorithm (implemented in C++) for computing Tutte polynomials which was later incorporated into Mathematica and Sage.
Dynamic Topological Sort
Efficient algorithms for updating the topological sort of a directed graph after one or more edge insertions. Such algorithms can also be used for detecting cycles in dynamically changing graphs as well.
An experimental Java profiling tool which employs AspectJ to insert the necessary instrumentation for profiling rather than, for example, the Java Machine Profiler Interface (JVMPI). DJProf can be used to profile Java programs without modification (i.e. there is no need to recompile them for profiling) and does not require the user to have any knowledge of AspectJ.