Abstract
The synchronous model of computation requires that in every step, inputs are read and outputs are synchronously computed as the reaction of the program. In addition, all internal variables are updated in parallel even though not all of these values might be required for the current and the future reaction steps. To avoid unnecessary computations, we present a compile-time optimization procedure that computes for every variable a condition that determines whether its value is required for current or future computations. In this sense, our optimizations allow us to identify passive code that can be disabled to avoid unnecessary computations and therefore to reduce the reaction time of programs or their energy consumption.
- F. E. Allen. 1970. Control flow analysis. ACM SIGPLAN Not. 5, 7, 1--19. Google Scholar
Digital Library
- Y. Bai. 2010. Dependency analysis of synchronous programming languages. M. S. thesis. Department of Computer Science, University of Kaiserslautern, Germany.Google Scholar
- Y. Bai, J. Brandt, and K. Schneider. 2011. Data-flow analysis of extended finite state machines. In Proceedings of the Conference on Application of Concurrency to System Design (ACSD). B. Caillaud and J. Carmona, Eds., IEEE Computer Society. Google Scholar
Digital Library
- A. Benveniste, P. Caspi, S. Edwards, N. Halbwachs, P. Le Guernic, and R. de Simone. 2003. The synchronous languages twelve years later. Proc. IEEE 91, 1, 64--83.Google Scholar
Cross Ref
- G. Berry. 1999. The constructive semantics of pure Esterel. http://www-sop.inria.fr/esterel.org/.Google Scholar
- G. Berry and G. Gonthier. 1992. The Esterel synchronous programming language: Design, semantics, implementation. Sci. Comput. Program. 19, 2, 87--152. Google Scholar
Digital Library
- R. Bloem, H. N. Gabow, and F. Somenzi. 2000. An algorithm for strongly connected component analysis in n log n symbolic steps. In Formal Methods in Computer-Aided Design (FMCAD). W. A. Hunt and S. D. Johnson, Eds., Lecture Notes in Computer Science, vol. 1954, Springer, 37--54. Google Scholar
Digital Library
- J. Brandt and K. Schneider. 2009a. Separate compilation for synchronous programs. In Proceedings of the 12th International Workshop on Software Compilers for Embedded Systems (SCOPES). H. Falk, Ed., ACM, 1--10. Google Scholar
- J. Brandt and K. Schneider. 2009b. Static data-flow analysis of synchronous programs. In Proceedings of the 7th IEEE/ACM International Conference on Formal Methods and Models for Codesign (MEMOCODE). R. Bloem and P. Schaumont, Eds., IEEE Computer Society, 161--170. Google Scholar
Digital Library
- J. Brandt and K. Schneider. 2011. Separate translation of synchronous programs to guarded actions. Internal report 382/11, Department of Computer Science, University of Kaiserslautern, Kaiserslautern, Germany.Google Scholar
- K. M. Chandy and J. Misra. 1989. Parallel Program Design. Addison-Wesley, Austin, Texas. Google Scholar
Digital Library
- R. Cleaveland, M. Klein, and B. Steffen. 1993. Faster model checking for the modal μ-calculus. In Computer Aided Verification (CAV), G. von Bochmann and D. Probst, Eds., Lecture Notes in Computer Science, vol. 663, Springer, 410--422. Google Scholar
Digital Library
- E. Closse, M. Poize, J. Pulou, J. Sifakis, P. Venter, D. Weil, and S. Yovine. 2001. TAXYS: A tool for the development and verification of real-time embedded systems. In Computer Aided Verification (CAV), G. Berry, H. Comon, and A. Finkel, Eds., Lecture Notes in Computer Science, vol. 2102. Springer, 391--395. Google Scholar
Digital Library
- E. Closse, M. Poize, J. Pulou, P. Venier, and D. Weil. 2002. SAXO-RT: Interpreting Esterel semantics on a sequential execution structure. Electron. Notes Theor. Comput. Sci. 65, 5, 80--94.Google Scholar
Cross Ref
- M. Dam. 1994. CTL* and ECTL* as fragments of the modal μ-calculus. Theor. Comput. Sci. 126, 1, 77--96. Google Scholar
Digital Library
- J. W. de Bakker. 1976. Least fixed points revisited. Theor. Comput. Sci. 2, 2, 155--181.Google Scholar
Cross Ref
- E. W. Dijkstra. 1975. Guarded commands, nondeterminacy and formal derivation of programs. Comm. ACM 18, 8, 453--457. Google Scholar
Digital Library
- D. L. Dill. 1996. The Murphi verification system. In Computer Aided Verification (CAV), R. Alur and T. Henzinger, Eds., Lecture Notes in Computer Science, vol. 1102. Springer, 390--393. Google Scholar
Digital Library
- S. Edwards. 2002. An Esterel compiler for large control-dominated systems. IEEE Trans. Comput.-Aid. Des. Integr. Circuits Syst. 21, 2, 169--183. Google Scholar
Digital Library
- S. A. Edwards, V. Kapadia, and M. Halas. 2004. Compiling Esterel into static discrete-event code. In Proceedings of the 3rd International Workshop on Synchronous Languages, Applications, and Programming (SLAP). Electronic Notes in Theoretical Computer Science, vol. 133, 4, 117--131. Google Scholar
Digital Library
- E. A. Emerson, C. S. Jutla, and A. P. Sistla. 1993. On model-checking for fragments of μ-calculus. In Computer Aided Verification (CAV), C. Courcoubetis, Ed., Lecture Notes in Computer Science, vol. 697. Springer, 385--396. Google Scholar
Digital Library
- E. A. Emerson, C. S. Jutla, and A. P. Sistla. 2001. On model checking for the μ-calculus and its fragments. Theor. Comput. Sci. 258, 1--2, 491--522. Google Scholar
Digital Library
- N. Halbwachs. 1993. Synchronous Programming of Reactive Systems. Kluwer. Google Scholar
Digital Library
- N. Halbwachs, P. Raymond, and C. Ratel. 1991. Generating efficient code from data-flow programs. In Programming Language Implementation and Logic Programming (PLILP), J. Maluszyński and M. Wirsing, Eds., Lecture Notes in Computer Science, vol. 528. Springer, 207--218.Google Scholar
- M. S. Hecht and J. D. Ullman. 1973. Analysis of a simple algorithm global data flow problems. In Proceedings of the Symposium on Principles of Programming Languages (POPL). ACM, 207--217. Google Scholar
Digital Library
- M. S. Hecht and J. D. Ullman. 1974. Characterizations of reducible flow graphs. J. ACM 21, 3, 367--375. Google Scholar
Digital Library
- Z. Herczeg, A. Kiss, D. Schmidt, N. Wehn, and T. Gyimóthy. 2007. XEEMU: An improved XScale power simulator. In Power and Timing Modelling, Optimization and Simulation (PATMOS), N. Azemard and L. Svensson, Eds., Lecture Notes in Computer Science, vol. 4644. Springer, 300--309. Google Scholar
Digital Library
- B. Jiang. 1993. I/O-and CPU-optimal recognition of strongly connected components. Inf. Proces. Lett. 45, 3, 111--115. Google Scholar
Digital Library
- L. Ju, B. K. Huynh, S. Chakraborty, and A. Roychoudhury. 2009. Context-sensitive timing analysis of Esterel programs. In Proceedings of the Design Automation Conference (DAC). ACM, 870--873. Google Scholar
Digital Library
- L. Ju, B. Khoa Huynh, A. Roychoudhury, and S. Chakraborty. 2010. Timing analysis of Esterel programs on general purpose multiprocessors. In Proceedings of the Design Automation Conference (DAC). S. Sapatnekar, Ed., ACM, 48--51. Google Scholar
Digital Library
- H. Järvinen and R. Kurki-Suonio. 1990. The DisCo language and temporal logic of actions. Tech. rep. 11. Software Systems Laboratory, Tampere University of Technology.Google Scholar
- D. Kozen. 1983. Results on the propositional μ-calculus. Theor. Comput. Sci. 27, 3, 333--354.Google Scholar
Cross Ref
- G. Logothetis and K. Schneider. 2003. Exact high level WCET analysis of synchronous programs by symbolic state space exploration. In Proceedings of the Design, Automation and Test in Europe (DATE). IEEE Computer Society, 10196--10203. Google Scholar
Digital Library
- L. Mendondca de Moura and N. Bjørner. 2008. Z3: An efficient SMT solver. In Proceedings of the Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS). C. Ramakrishnan and J. Rehof, Eds., Lecture Notes in Computer Science, vol. 4963. Springer, 337--340. Google Scholar
Digital Library
- D. Potop-Butucaru and R. de Simone. 2003. Optimizations for faster execution of Esterel programs. In Proceedings of the IEEE/ACM International Conference on Formal Methods and Models for Codesign (MEMOCODE). IEEE Computer Society, 227--236. Google Scholar
Digital Library
- D. Potop-Butucaru, S. A. Edwards, and G. Berry. 2007. Compiling Esterel. Springer. Google Scholar
Digital Library
- B. K. Rosen. 1977. High-level data flow analysis. Comm. ACM 20, 10, 712--724. Google Scholar
Digital Library
- P. Ryamond. 1991. Compilation efficace d'un langage déclaratif synchrone: Le génerateur de code LUSTRE-V3. Ph.D. thesis, Institut national polytechnique de Grénoble, Grenoble, France.Google Scholar
- D. A. Schmidt. 1998. Data flow analysis is model checking of abstract interpretations. In Proceedings of the Symposium on Principles of Programming Languages (POPL). ACM, 38--48. Google Scholar
Digital Library
- K. Schneider. 2000. A verified hardware synthesis for Esterel. In Proceedings of the IFIP International Workshop on Distributed and Parallel Embedded Systems (DIPES). F. Rammig, Ed. Kluwer, 205--214. Google Scholar
Digital Library
- K. Schneider. 2001a. Embedding imperative synchronous languages in interactive theorem provers. In Proceedings of the 2nd International Conference on Application of Concurrency to System Design (ACSD). IEEE Computer Society, 143--154. Google Scholar
Digital Library
- K. Schneider. 2001b. Improving automata generation for linear temporal logic by considering the automata hierarchy. In Logic for Programming, Artificial Intelligence, and Reasoning (LPAR), R. Nieuwenhuis and A. Voronkov, Eds., Lecture Notes in Artificial Intelligence, vol. 2250, Springer, 39--54. Google Scholar
Digital Library
- K. Schneider. 2002. Proving the equivalence of microstep and macrostep semantics. In Theorem Proving in Higher Order Logics (TPHOL), V. Carreño, C. Muñoz, and S. Tahar, Eds., Lecture Notes in Computer Science, vol. 2410. Springer, 314--331. Google Scholar
Digital Library
- K. Schneider. 2003. Verification of Reactive Systems - Formal Methods and Algorithms. Texts in Theoretical Computer Science, Springer. Google Scholar
Digital Library
- K. Schneider. 2009. The synchronous programming language Quartz. Internal Report 375. Department of Computer Science, University of Kaiserslautern, Kaiserslautern, Germany.Google Scholar
- K. Schneider and J. Brandt. 2008. Performing causality analysis by bounded model checking. In Proceedings of the 8th International Conference on Application of Concurrency to System Design (ACSD). IEEE Computer Society, 78--87.Google Scholar
- K. Schneider, J. Brandt, and T. Schuele. 2004. Causality analysis of synchronous programs with delayed actions. In Proceedings of the International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES). ACM, 179--189. Google Scholar
Digital Library
- K. Schneider, J. Brandt, and T. Schuele. 2006. A verified compiler for synchronous programs with local declarations. Electron. Notes Theor. Comput. Sci. 153, 4, 71--97. Google Scholar
Digital Library
- T. Schuele and K. Schneider. 2004. Abstraction of assembler programs for symbolic worst case execution time analysis. In Proceedings of the Design Automation Conference (DAC). S. Malik, L. Fix, and A. Kahng, Eds., ACM, 107--112. Google Scholar
Digital Library
- M. Sharir. 1981. A strong-connectivity algorithm and its application in data flow analysis. Comput. Math. Appl. 7, 1, 67--72.Google Scholar
Cross Ref
- B. Steffen. 1991. Data flow analysis as model checking. In Proceedings of the Conference on Theoretical Aspects of Computer Software (TACS). T. Ito and A.R. Meyer, Eds., Lecture Notes in Computer Science, vol. 526. Springer, 346--364. Google Scholar
Digital Library
- SYNC98 SYNCHRON. 1998. The common format of synchronous languages - the declarative code DC. Tech. rep. C2A, SYNCHRON project.Google Scholar
- O. Tardieu and R. de Simone. 2003. Instantaneous termination in pure Esterel. In Static Analysis Symposium (SAS), R. Cousot, Ed., Lecture Notes in Computer Science, vol. 2694, Springer, 91--108. Google Scholar
Digital Library
- R. Tarjan. 1972. Depth first search and linear graph algorithms. SIAM J. Comput. 1, 2, 146--160.Google Scholar
Digital Library
- A. Tarski. 1955. A lattice-theoretical fixpoint theorem and its applications. Pacific J. Math. 5, 2, 285--309.Google Scholar
Cross Ref
- A. Xie and P. A. Beerel. 2000. Implicit enumeration of strongly connected components and an application to formal verification. IEEE Trans. Comput.-Aid. Des. Integr. Circuits Syst. 19, 10, 1225--1230. Google Scholar
Digital Library
- J. Zeng, C. Soviani, and S. A. Edwards. 2004. Generating fast code from concurrent program dependence graphs. In Proceedings of the ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES). D. Whalley and R. Cytron, Eds. ACM, 175--181. Google Scholar
Digital Library
Index Terms
Passive code in synchronous programs
Recommendations
Precise flow-insensitive may-alias analysis is NP-hard
Determining aliases is one of the foundamental static analysis problems, in part because the precision with which this problem is solved can affect the precision of other analyses such as live variables, available expressions, and constant propagation. ...
Building a bridge between pointer aliases and program dependences
In this paper we present a surprisingly simple reduction of the program dependence problem to the may-alias problem. While both problems are undecidable, providing a reduction between them has great practical importance. Program dependence information ...
Improving static analyses of C programs with conditional predicates
Static code analysis is increasingly used to guarantee the absence of undesirable behaviors in industrial programs. Designing sound analyses is a continuing trade-off between precision and complexity. Notably, dataflow analyses often perform overly wide ...






Comments