skip to main content
research-article

SCEst: Sequentially Constructive Esterel

Published:07 December 2017Publication History
Skip Abstract Section

Abstract

The synchronous language Esterel provides determinate concurrency for reactive systems. Determinacy is ensured by the signal coherence rule, which demands that signals have a stable value throughout one reaction cycle. This is natural for the original application domains of Esterel, such as controller design and hardware development; however, it is unnecessarily restrictive for software development. Sequentially Constructive Esterel (SCEst) overcomes this restriction by allowing values to change instantaneously, as long as determinacy is still guaranteed, adopting the recently proposed Sequentially Constructive model of computation. SCEst is grounded in the minimal Sequentially Constructive Language (scl), which also provides a novel semantic definition and compilation approach for Esterel.

References

  1. Joaquín Aguado, Michael Mendler, Reinhard von Hanxleden, and Insa Fuhrmann. 2014. Grounding synchronous deterministic concurrency in sequential programming. In Proceedings of the 23rd European Symposium on Programming (ESOP’14), LNCS 8410. Springer.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Sidharta Andalam, Partha Roop, Alain Girault, and Claus Traulsen. 2009. PRET-C: A new language for programming precision timed architectures. In Proceedings of the Workshop on Reconciling Performance with Predictability (RePP’09), Embedded Systems Week.Google ScholarGoogle Scholar
  3. Charles André. 2003. Semantics of SyncCharts. Technical Report ISRN I3S/RR--2003--24--FR. I3S Laboratory, Sophia-Antipolis, France.Google ScholarGoogle Scholar
  4. Andrew W. Appel. 1998. SSA is functional programming. SIGPLAN Not. 33, 4 (April 1998), 17--20. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Albert Benveniste, Paul Caspi, Stephen A. Edwards, Nicolas Halbwachs, Paul Le Guernic, and Robert de Simone. 2003. The synchronous languages twelve years later. In Proc. IEEE (Special Issue on Embedded Systems), 91, 64--83.Google ScholarGoogle ScholarCross RefCross Ref
  6. Gérard Berry. 2000. The foundations of Esterel. In Proof, Language, and Interaction: Essays in Honour of Robin Milner, Gordon Plotkin, Colin Stirling, and Mads Tofte (Eds.). MIT Press, Cambridge, MA, 425--454. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Frédéric Boussinot. 2006. FairThreads: Mixing cooperative and preemptive threads in C. Concurr. Comput.: Pract. Exper. 18, 5 (April 2006), 445--469. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Paul Caspi, Jean-Louis Colaço, Léonard Gérard, Marc Pouzet, and Pascal Raymond. 2009. Synchronous objects with scheduling policies: Introducing Safe Shared Memory in Lustre. In Proceedings of the ACM International Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES’09). ACM, 11--20. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Jean-Louis Colaço, Grégoire Hamon, and Marc Pouzet. 2006. Mixing signals and modes in synchronous data-flow systems. In Proceedings of the ACM International Conference on Embedded Software (EMSOFT’06). ACM, 73--82. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, and F. Kenneth Zadeck. 1991. Efficiently computing static single assignment form and the control dependence graph. ACM Trans. Program. Lang. Syst. 13, 4 (October 1991), 451--490. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Stephen A. Edwards. 2003. Tutorial: Compiling concurrent languages for sequential processors. ACM Trans. Design Automat. Electron. Syst. 8, 2 (April 2003), 141--187. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Fuchs and M. Mendler. 1995. A functional semantics for delta-delay VHDL based on FOCUS. In Formal Semantics for VHDL, C. D. Kloos and P. Breuer (Eds.). Kluwer, 9--42.Google ScholarGoogle Scholar
  13. Insa Fuhrmann, David Broman, Steven Smyth, and Reinhard von Hanxleden. 2014. Towards Interactive Timing Analysis for Designing Reactive Systems. In Proceedings of the Conference on Reconciling Performance and Predictability (RePP’14).Google ScholarGoogle ScholarCross RefCross Ref
  14. Alain Girault. 2005. A survey of automatic distribution method for synchronous programs. In Proceedings of the International Workshop on Synchronous Languages, Applications and Programs (SLAP’05) (Electronic Notes in Theoretical Computer Science), F. Maraninchi, M. Pouzet, and V. Roy (Eds.). Elsevier Science, Edinburgh, UK.Google ScholarGoogle Scholar
  15. C. A. R. Hoare. 1985. Communicating Sequential Processes. Prentice Hall, Upper Saddle River, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Luciano Lavagno and Ellen Sentovich. 1999. ECL: A specification environment for system-level design. In Proceedings of the 36th ACM/IEEE Conference on Design Automation (DAC’99). ACM, 511--516. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Edward A. Lee. 2006. The problem with threads. IEEE Comput. 39, 5 (2006), 33--42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Dumitru Potop-Butucaru, Stephen A. Edwards, and Gérard Berry. 2007. Compiling Esterel. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Karsten Rathlev. 2015. From Esterel to SCL. Master thesis. Kiel University, Department of Computer Science. Retrieved from http://rtsys.informatik.uni-kiel.de/ biblio/downloads/theses/krat-mt.pdf.Google ScholarGoogle Scholar
  20. Karsten Rathlev, Steven Smyth, Christian Motika, Reinhard von Hanxleden, and Michael Mendler. 2015. SCEst: Sequentially constructive Esterel. In Proceedings of the 13th ACM-IEEE International Conference on Formal Methods and Models for System Design (MEMOCODE’15). Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. K. Schneider. 2001. Embedding imperative synchronous languages in interactive theorem provers. In Conference on Application of Concurrency to System Design (ACSD’01). IEEE Computer Society, 143--156. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. P. Sewell, S. Sarkar, S. Owens, F. Zappa Nardelli, and M. O. Myreen. 2010. x86-TSO: A rigorous and usable programmers model for x86 multiprocessors. Commun. ACM (2010), 89--97. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Steven Smyth, Christian Motika, and Reinhard von Hanxleden. 2015. A data-flow approach for compiling the sequentially constructive language (SCL). In Proceedings of the 18th Kolloquium Programmiersprachen und Grundlagen der Programmierung (KPS’15).Google ScholarGoogle Scholar
  24. J.-P. Talpin, J. Brandt, M. Gemünde, K. Schneider, and S. K. Shukla. 2014. Constructive polychronous systems. Sci. Comput. Program. 96, 3 (Dec. 2014), 377--394. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Olivier Tardieu. 2004. Goto and concurrency—Introducing safe jumps in Esterel. In Proceedings of Synchronous Languages, Applications, and Programming (SLAP’04).Google ScholarGoogle Scholar
  26. Olivier Tardieu and Stephen A. Edwards. 2006. Scheduling-independent threads and exceptions in SHIM. In Proceedings of the International Conference on Embedded Software (EMSOFT’06). ACM. 142--151. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Olivier Tardieu and Stephen A. Edwards. 2007. Instantaneous transitions in Esterel. In Proceedings of the Conference on Model Driven High-Level Programming of Embedded Systems (SLA++P’07).Google ScholarGoogle Scholar
  28. Reinhard von Hanxleden. 2009. SyncCharts in C—A proposal for light-weight, deterministic concurrency. In Proceedings of the International Conference on Embedded Software (EMSOFT’09). ACM. 225--234. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Reinhard von Hanxleden, Björn Duderstadt, Christian Motika, Steven Smyth, Michael Mendler, Joaquín Aguado, Stephen Mercer, and Owen O’Brien. 2014a. SCCharts: Sequentially constructive statecharts for safety-critical applications. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’14). ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Reinhard von Hanxleden, Michael Mendler, Joaquín Aguado, Björn Duderstadt, Insa Fuhrmann, Christian Motika, Stephen Mercer, Owen O’Brien, and Partha Roop. 2014b. Sequentially constructive concurrency—A Conservative extension of the synchronous model of computation. ACM Trans. Embed. Comput. Syst. (Special Issue on Applications of Concurrency to System Design) 13, 4s (July 2014), 144:1--144:26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Eugene Yip, Partha S. Roop, Morteza Biglari-Abhari, and Alain Girault. 2013. Programming and timing analysis of parallel programs on multicores. In Proceedings of the 13th International Conference on Application of Concurrency to System Design (ACSD’13). 160--169. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Fang Yu, Shun-Ching Yang, Farn Wang, Guan-Cheng Chen, and Che-Chang Chan. 2012. Symbolic consistency checking of OpenMP parallel programs. In Proceedings of the 13th ACM International Conference on Languages, Compilers, Tools and Theory for Embedded Systems (LCTES’12). ACM, 139--148. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. SCEst: Sequentially Constructive Esterel

                    Recommendations

                    Comments

                    Login options

                    Check if you have access through your login credentials or your institution to get full access on this article.

                    Sign in

                    Full Access

                    PDF Format

                    View or Download as a PDF file.

                    PDF

                    eReader

                    View online with eReader.

                    eReader
                    About Cookies On This Site

                    We use cookies to ensure that we give you the best experience on our website.

                    Learn more

                    Got it!