Back to Search
Start Over
Multi-threaded code generation from Signal program to OpenMP
- Source :
- Frontiers of Computer Science, Frontiers of Computer Science, Springer Verlag, 2013, 7 (5), pp.617-626. ⟨10.1007/s11704-013-3906-4⟩
- Publication Year :
- 2013
- Publisher :
- Springer Science and Business Media LLC, 2013.
-
Abstract
- International audience; 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.
- Subjects :
- [INFO.INFO-AR]Computer Science [cs]/Hardware Architecture [cs.AR]
Source code
General Computer Science
Dead code
Computer science
Concurrency
media_common.quotation_subject
[INFO.INFO-SE]Computer Science [cs]/Software Engineering [cs.SE]
02 engineering and technology
Parallel computing
computer.software_genre
Interface homme-machine
Theoretical Computer Science
[INFO.INFO-CR]Computer Science [cs]/Cryptography and Security [cs.CR]
Architectures Matérielles
0202 electrical engineering, electronic engineering, information engineering
Génie logiciel
Code generation
[INFO.INFO-HC]Computer Science [cs]/Human-Computer Interaction [cs.HC]
Redundant code
media_common
Signal
Programming language
SIGNAL (programming language)
OpenMP
020207 software engineering
Modélisation et simulation
Systèmes embarqués
[INFO.INFO-MO]Computer Science [cs]/Modeling and Simulation
Synchronous language
Cryptographie et sécurité
[INFO.INFO-ES]Computer Science [cs]/Embedded Systems
020201 artificial intelligence & image processing
Unreachable code
Compiler
computer
Multi-thread
Subjects
Details
- ISSN :
- 20952236 and 20952228
- Volume :
- 7
- Database :
- OpenAIRE
- Journal :
- Frontiers of Computer Science
- Accession number :
- edsair.doi.dedup.....21ff1e324ce49e13d26b2061c2a1fdd9
- Full Text :
- https://doi.org/10.1007/s11704-013-3906-4