Modules  Description 
This module implements functions for simulating Abacus assembler programs. The core is thereby the definition of the computer system's state, and the instruction set semantics in terms of operationally changing the system's state when executing an instruction. 

This module implements functions for translating cmd programs to Abacus assembler programs. To this end, functions for dataflow analysis, in particular, the liveness of variables are provided that are used to build interference graphs of the variables used, which in turn are used to compute static register allocators with a graph coloring approach. Based on such a register allocator, the final generation of Abacus assembler instructions from a cmd program is not difficult (and also provided). 

This module implements functions for generating code for BED architectures like SCAD from dataflow graphs (DPNs). 

This module implements the core of a simple compiler for translating MiniC programs to CmdType programs and control dataflow graphs. 

This module implements the core of a simple compiler for translating MiniC programs to CmdType programs and control dataflow graphs. 

This module implements the core of a translation of MiniC programs to equivalent dataflow graphs which are also known as dataflow process networks. The possible nodes of these dataflow graphs are defined in DataflowProcess and a dataflow graph is of type DataflowProcessNetwork. The most important function is MiniC2DPN for translating MiniC programs to DPNs. DPNs can be levelized by LevelizeDPN, and MinimumNumberOfVertexDisjointPathsDPN computes a minimal number of vertexdisjoint paths for an optimal parallel execution time where each vertexdisjoint path becomes a thread. 

This module implements functions for parsing MiniC, Cmd, and Abacus programs and also for printing these programs to streams. 





This module implements functions for simulating a universal SCAD machine. 

This module implements basic data structures for the MiniC language, the intermediate language CmdType, and the Abacus assembler language. Moreover, there are some basic functions to work with these basic data types like those for type checking MiniC programs, and determining the variables that are read and written by instructions. 