Compositional software synthesis of communicating processes

We describe a new compositional software synthesis method for synthesizing concurrent software programs into ordinary C programs so that they can be executed on embedded processors without the need for a run-time multitasking operating system. The synthesized C program can be readily retargeted to different processors using available optimizing C compilers. The method works by transforming the initial input specification into a set of interacting Petri net components. It then applies a quasi-static scheduling method on each Petri net component to produce a corresponding state machine model. The resulting set of interacting state machines are then mapped into a single C program, which can finally be compiled to native machine code via conventional C compilers. In the degenerate case, each process in the initial input specification is mapped into a separate Petri net component. In this case, the size of the resulting C program is directly proportional to the size of the original concurrent specification. Thus, this technique can scale well to large applications and is immune to code explosion.

[1]  Richard M. Stallman,et al.  Using and Porting GNU CC , 1998 .

[2]  Ronald L. Rivest,et al.  The RC5 Encryption Algorithm , 1994, FSE.

[3]  Bill Lin,et al.  A Communicating Petri Net Model for the Design of Concurrent Asynchronous Modules , 1994, 31st Design Automation Conference.

[4]  James Lyle Peterson,et al.  Petri net theory and the modeling of systems , 1981 .

[5]  Brian W. Kernighan,et al.  The C Programming Language , 1978 .

[6]  Diederik Verkest,et al.  Derivation of formal representations from process-based specification and implementation models , 1997, Proceedings. Tenth International Symposium on System Synthesis (Cat. No.97TB100114).

[7]  Bill Lin,et al.  Software synthesis of process-based concurrent programs , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[8]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[9]  Hugo De Man,et al.  Architecture-driven synthesis techniques for VLSI implementation of DSP algorithms , 1990, Proc. IEEE.