The ESTEREL synchronous programming language: design, semantics, implementation
Science of Computer Programming
Information and Computation
Combining Dependability with Architectural Adatability by Means of the SIGNAL Language
WSA '93 Proceedings of the Third International Workshop on Static Analysis
Concurrency in Synchronous Systems
Formal Methods in System Design
Computer
Designing Embedded Systems with the SIGNAL Programming Language: Synchronous, Reactive Specification
Designing Embedded Systems with the SIGNAL Programming Language: Synchronous, Reactive Specification
Multithreaded code from synchronous programs: extracting independent threads for OpenMP
Proceedings of the Conference on Design, Automation and Test in Europe
Compositional design of isochronous systems
Science of Computer Programming
From Concurrent Multi-clock Programs to Deterministic Asynchronous Implementations
Fundamenta Informaticae - Application of Concurrency to System Design, the Eighth Special Issue
Hi-index | 0.00 |
The use of multi-core processors will become a trend in safety critical systems. For safe execution of multithreaded code, automatic code generation from formal specification is a desirable method. Signal, a synchronous language dedicated for the functional description of safety critical systems, provides soundness semantics for deterministic concurrency. Although sequential code generation of Signal has been implemented in Polychrony compiler, deterministic multi-threaded code generation strategy is still far from mature. Moreover, existing code generation methods use certain multi-thread library, which limits the cross platform executions. OpenMP is an application program interface (API) standard for parallel programming, supported by several mainstream compilers from different platforms. This paper presents a methodology translating Signal program to OpenMP-based multi-threaded C code. First, the intermediate representation of the core syntax of Signal using synchronous guarded actions is defined. Then, according to the compositional semantics of Signal equations, the Signal program is synthesized to dependency graph (DG). After parallel tasks are extracted from dependency graph, the Signal program can be finally translated into OpenMP-based C code which can be executed on multiple platforms.