Results so far in automatic parallelization include progress in identifying independent processes in programs and aggregating these processes to achieve appropriate grain size. New, more lax notions of dependency have been defined. The related analysis and transformation frameworks have been developed and implemented, resulting in a first set of integrated tools for dependency analysis, producer/consumer determination, granularity control, process graph shape modification, etc. which are expected to result in improved parallel program behavior.
In the context of analysis of concurrent programs current results include an analysis deriving definite and possible ordering information and a compilation technique which translates a program into threads. Also, a method for analyzing concurrent programs with deep guards has been implemented in such a language (AKL). The notion of ``confluence'' has been introduced showing that for the large class of confluent programs suspension analysis is efficient and accurate. A denotational semantics useful for compositional analysis has been proposed, and shown to be a correct approximation of the standard operational model.
In the context of parallel program development a declarative debugger for the Gödel programming language and a visualizer for a number or parallelism paradigms have been developed.
Finally, common syntax and interfaces have been designed in order to allow interoperability and assessment of the tools.