This directory contains the sources of Diderot compiler. The compiler is organized into a series of passes, each of which takes a Diderot program in some representation and produces a new representation. Here is a summary of the passes: 1) Scanning and parsing This phase scans and parses the Diderot source program. (see parser) 2) Typechecking This phase takes the parse tree and typechecks it, producing a typed AST representation. (see ast, basis, parser, typechecker) 3) Simplification This takes the Typed AST representation and produces the Simple AST representation. Simple AST only allows simple expressions over variables. This phase is also responsible for determining which global variables are static and evaluating them to. The main purpose of the static evaluation is to get the image summary information from dnorm. (see ast, simplify) 4) Translation to HighIL This pass takes the Simple AST representation and translates it to HighIL representation, which is a block-structured SSA representation. (see basis, high-il, IL, simplify, translation) 5) HighIL optimization *** Not implemented yet *** (see high-il, high-il-opt, IL) 6) Translation to MidIL *** Not implemented yet *** (see high-il, high-to-mid, IL, mid-il) 7) MidIL optimization *** Not implemented yet *** (see mid-il, mid-il-opt, IL) 6) Translation to LowIL *** Not implemented yet *** (see IL, low-il, mid-il, mid-to-low) 7) LowIL optimization *** Not implemented yet *** (see IL, low-il, low-il-opt) 8) Code generation *** Not implemented yet *** And here is a roadmap of the subdirectories: IL - The generic IL modules that are used for the HighIL, MidIL, and LowIL representations. IL/gen - A simple program generator for the IL modules. ast - The typed AST representation basis - The definition of the Diderot Basis environment common - Various miscellaneous utility modules driver - The driver glues the various phases together env - The environment representation used in typechecking fields - Internal representations of image info, kernels, and fields high-il - The HighIL representation high-to-mid - The HighIL to MidIL translation phase low-il - The LowIL representation mid-il - The MidIL representation parser - The parser, scanner, and parse-tree representation. simplify - Contains the Simple AST representation and the simplification phase. translate - The translation from Simple AST to High IL typechecker - The typechecker