Compiler Architecture

Tiger in Stratego -- Compilation by Program Transformation
The diagram below depicts the data flow in the TigerCompiler for the HpcProject. Red edges denote the data flow of the compiler. Green edges denote data flow in the interpreter. The idea is that a compiled program should produce the same output as the same program interpreted. Black edges denote utilities such as pretty-printers and format checkers. Edges are labeled with the name of the CompilerComponent. The boxes correspond to the CompilerPackages in which the compiler is divided. The names in the ellipses show the name of the program (f) and the file extension. The file extension can be used with the make targets in the TigerMakeRules? to create the corresponding intermediate result.

There is also an abbreviated CompilerOverview and extracts of this diagram depicting the FrontEndArchitecture, OptimizerArchitecture, and BackEndArchitecture.