Skip to content

Tools developed for the ForeC synchronous parallel language

License

Notifications You must be signed in to change notification settings

PRETgroup/ForeC

Repository files navigation

ForeC Tool Suite

The ForeC language enables the deterministic, parallel, and reactive programming of embedded multi-cores. The synchronous semantics of ForeC is designed to greatly simplify the understanding and debugging of parallel programs. ForeC ensures that ForeC programs can be compiled efficiently for parallel execution and be amenable to static timing analysis. ForeC's main innovation is its shared variable semantics that provides thread isolation and deterministic thread communication. All ForeC programs are correct by construction and deadlock-free because no non-deterministic constructs are needed.

Relevant publications:

Tools

  • ForeC Compiler: Prototypic compiler, based on Flex/Bison, for a practical subset of the ForeC language.
  • ForeC Analyser: Static timing analyser for ForeC programs compiled for bare-metal execution on MicroBlaze and PTARM architectures.
  • ForeC Benchmarks: Programs used in running examples, in performance benchmarks, and in timing analysis benchmarks.
  • MicroBlaze Simulator: Cycle-accurate simulator of a Xilinx MicroBlaze processor with a configurable number of cores.
  • PTARM Processor: Modified softcore Precision Timed (PRET) processor from UC Berkeley