The ESTEREL synchronous programming language: design, semantics, implementation
Science of Computer Programming
Synthesis of software programs for embedded control application
DAC '95 Proceedings of the 32nd annual ACM/IEEE Design Automation Conference
A case study in computer-aided co-design of embedded controllers
Design Automation for Embedded Systems
Software synthesis of process-based concurrent programs
DAC '98 Proceedings of the 35th annual Design Automation Conference
CODES '99 Proceedings of the seventh international workshop on Hardware/software codesign
ECL: a specification environment for system-level design
Proceedings of the 36th annual ACM/IEEE Design Automation Conference
Synthesis of embedded software using free-choice Petri nets
Proceedings of the 36th annual ACM/IEEE Design Automation Conference
Heterogeneous modeling and simulation of embedded systems in El Greco
CODES '00 Proceedings of the eighth international workshop on Hardware/software codesign
Esterel: a formal method applied to avionic software development
Science of Computer Programming
A fast algorithm for finding dominators in a flowgraph
ACM Transactions on Programming Languages and Systems (TOPLAS)
Constructive Analysis of Cyclic Circuits
EDTC '96 Proceedings of the 1996 European conference on Design and Test
Proceedings of the conference on Design, automation and test in Europe
Embedded UML: a merger of real-time UML and co-design
Proceedings of the ninth international symposium on Hardware/software codesign
Logic optimization and code generation for embedded control applications
Proceedings of the ninth international symposium on Hardware/software codesign
ESP: a language for programmable devices
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Software synthesis from synchronous specifications using logic simulation techniques
Proceedings of the 39th annual Design Automation Conference
Tutorial: Compiling concurrent languages for sequential processors
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Proceedings of the tenth international symposium on Hardware/software codesign
Asynchronous software thread integration for efficient software
Proceedings of the 2004 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Modeling of CSP, KPN and SR systems with systemC
Languages for system specification
Towards direct execution of esterel programs on reactive processors
Proceedings of the 4th ACM international conference on Embedded software
Providing time- and space- efficient procedure calls for asynchronous software thread integration
Proceedings of the 2004 international conference on Compilers, architecture, and synthesis for embedded systems
Fast Paths in Concurrent Programs
Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques
Supporting Demanding Hard-Real-Time Systems with STI
IEEE Transactions on Computers
ACM Transactions on Embedded Computing Systems (TECS)
Compiling concurrent programs for embedded sequential execution
Integration, the VLSI Journal
Compiling Esterel into Static Discrete-Event Code
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
Embedded real-time software systems often need fine-grained parallelism and precise control over time, things typical real-time operating systems do not provide. The Esterel language has both, but Existing compilers produce slow code for large programs.This paper presents the first Esterel compiler able to produce small, fast code for large programs. It can produce code half the size and up to a hundred times faster than code from existing compilers. Esterel's semantics allow the compiler to statically schedule concurrency and synthesize code that efficiently and predictably simulates context switches. The main contribution is an algorithm that synthesizes an efficient sequential program from the concurrent control-flow graph used as an intermediate representation. These techniques could be applied to any language with fine-grained parallelism.