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
PrettyPrinters? and
FormatCheckers?. 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.