Flow Java

Flow Java is an extension to Java which extends the language with single-assignment variables and futures as variants of logic variables. The extension is conservative with respect to object-orientation, types, parameter passing and concurrency. The Flow Java implementation is based on GCJ, the GNU compiler for the Java Programming Language, and its runtime environment.



Implementation Strategies for Single Assignment Variables: Presentation given at the Colloquium on Implementation of Constraint and LOgic Programming Systems (CICLOPS), 2004, Saint-Malo, France

Flow Java: Declarative Concurrency for Java: Presentation given at the Nineteenth International Conference on Logic Programming, 2003, Mumbai, India.


Flow Java is distributed as a patch against the release version of GCC 3.3.2 Build instructions are in the README.flow_java.

Currently the Flow Java implementation only supports the i386 platform.

Latest Version

Flow Java 041126 as a patch against GCC 3.3.2 README.flow_java

A pre-patched version of the gcc source is also available: flow-java-041126-src.tar.gz

Old Versions

Flow Java 030926 as a patch against GCC 3.3 README.flow_java

A pre-patched version of the gcc source is also available: flow-java-030926-src.tar.gz

Unsupported binaries are also provided: flow-java-030926-bin.tar.gz

Reporting bugs

Instructions for reporting bugs are located here.


The GNU Compiler for the Java Programming Language

The GNU Compiler Collection, GCC

Frej Drejhammar