Skip to content
Alexander Bernauer edited this page Jan 3, 2011 · 1 revision
  1. merge: merge all input source files into one source file. This is necessary because the compiler needs to see the whole program in order to perform the required static anlaysis.
  2. blocking functions: determine the set of blocking functions by parsing the platform configuration file
  3. start routines: determine the set of the start routines.
  4. call graph: calculate the call graph of the program.
  5. critical functions: determine the set of critical functions.
  6. goto transformation: transform the body of each critical function into a goto program.
  7. control flow transformation: transform the T-Code control flow into the equivalent E-code control flow
  8. T-stack: determine the set of states which have to be preserved across non-blocking operations and generate the corresponding T-stacks.
  9. data flow transformation: rewrite access to automatic variables with access to T-stack variables where necessary
  10. pretty printing: output the resulting E-code
  11. compiling: compile the E-code.
  12. linking: link the E-code against the PAL and the runtime environment.

Clone this wiki locally