HOME
UP
  PREV
NEXT (Declarative Design using Atomic Actions)
Behavioural Expression using Threads
We
express the algorithm and steps to be performed as an executable program
- using an imperative program (containing loops and assigments), or
- a functional program (where control flow is less-explicit).
Either way, the tool chain may:
- re-order the operations while preserving semantics, and/or
- re-encode the state and modify memory layouts.
Examples:
- Synopsys Behavioural Compiler for RTL (now defunct),
- Handel-C,
- Liquid Metal (Lime Language, IBM), Kiwi (Univ Cambridge/Microsoft),
- C-to-Gates : C-To-Verilog, SystemCrafter, LegUp, Catapult,
- Using Join Patterns or other parallel process algebra (C-omega).
The Kiwi, C-omega and Handel-C approaches are unusual: start with parallel programs and exploit
the scheduler non-determinacy to allow variations in implementation.