The Kan compiler. The compiler has been implemented with
{@link JParse}, a Java
parser, type evaluator, and exception analyzer based on
{@link ANTLR}. The compiler begins by
parsing all files given on the command line, producing ASTs (Abstract
Syntax Trees) as the result. It then does type analysis on the trees to
deduce the return types and checked exceptions thrown by asynchronous
method calls. The type information is used to generate
{@link kan.thread.Future Future} objects with appropriate join() and
result() methods. Then a tree walker generates the translated Java
output, as well as stub classes for global objects.