Parallel program design: a foundation
Parallel program design: a foundation
On the general false path problem in timing analysis
DAC '89 Proceedings of the 26th ACM/IEEE Design Automation Conference
The ESTEREL synchronous programming language: design, semantics, implementation
Science of Computer Programming
Advanced compiler design and implementation
Advanced compiler design and implementation
Characterizations of Reducible Flow Graphs
Journal of the ACM (JACM)
A framework for combining analysis and verification
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Communications of the ACM
A unified approach to global program optimization
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Analysis of a simple algorithm for global data flow problems
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Improving Automata Generation for Linear Temporal Logic by Considering the Automaton Hierarchy
LPAR '01 Proceedings of the Artificial Intelligence on Logic for Programming
The Murphi Verification System
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
Proceedings of a symposium on Compiler optimization
Embedded Systems Handbook
Causality analysis of synchronous programs with delayed actions
Proceedings of the 2004 international conference on Compilers, architecture, and synthesis for embedded systems
Embedded System Design
Compiling Esterel
Separate compilation for synchronous programs
Proceedings of th 12th International Workshop on Software and Compilers for Embedded Systems
Incremental False Path Elimination for Static Software Analysis
ATVA '09 Proceedings of the 7th International Symposium on Automated Technology for Verification and Analysis
From program verification to program synthesis
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Verified Compiler for Synchronous Programs with Local Declarations
Electronic Notes in Theoretical Computer Science (ENTCS)
Static data-flow analysis of synchronous programs
MEMOCODE'09 Proceedings of the 7th IEEE/ACM international conference on Formal Methods and Models for Codesign
Instantaneous termination in pure Esterel
SAS'03 Proceedings of the 10th international conference on Static analysis
A tutorial on satisfiability modulo theories
CAV'07 Proceedings of the 19th international conference on Computer aided verification
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
On theorem proving for program checking: historical perspective and recent developments
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Hi-index | 0.00 |
In this paper, we present several optimization techniques to improve the runtime and size of the code generated from synchronous programs. These optimizations work on extended finite state machines (EFSMs) that can be used as intermediate representation for any synchronous system. Our optimizations consists of two phases: First, local optimization guides the EFSM generation and considers the states and edges separately. Second, global optimization is based on a dataflow analysis of the entire EFSM. For both phases, we employ an SMT (Satisfiability Modulo Theories) solver to verify the individual optimization steps. Our experiments show the potential of the presented optimizations: optimized programs generally have a smaller size and a better run-time performance.