Efficient compilation and execution of synchronous programs via type-state programming
By: Avinash Malik
Potential Business Impact:
Compiles safety code faster and smaller.
Synchronous programs are used extensively in implementation of safety critical embedded software. Imperative synchronous programming languages model multiple Finite State Machines (FSMs) executing in lockstep at logical clock ticks. The synchronous view of time along with the FSM based design enables easier formal verification. The synchronous composition of multiple FSMs, during compilation, results in the well known state space explosion problem. Hence, efficiently compiling imperative synchronous programs into small and fast executables is challenging. This paper introduces a novel linear time compilation technique for automata based compilation of synchronous programs. Graph based rewrite rules for kernel programming constructs are introduced. A linear time algorithm applies these rules to produce a FSM. The FSM is then encoded into a type-state program using template meta-programming in C++. Experimental results show that the compilation time and generated binary size is comparable, while the execution times are on average 31-60% faster than current state-of-the-art compilers.
Similar Papers
SecFSM: Knowledge Graph-Guided Verilog Code Generation for Secure Finite State Machines in Systems-on-Chip
Cryptography and Security
Makes computer chips safer by fixing code.
Typestate via Revocable Capabilities
Programming Languages
Makes computer programs safer and easier to write.
Timetide: A programming model for logically synchronous distributed systems
Programming Languages
Lets computers work together without perfect timing.