skip to main content

A memory-bounded, deterministic and terminating semantics for the synchronous programming language Céu

Published:19 June 2018Publication History
Skip Abstract Section

Abstract

Céu is a synchronous programming language for embedded soft real-time systems. It focuses on control-flow safety features, such as safe shared-memory concurrency and safe abortion of lines of execution, while enforcing memory bounded, deterministic, and terminating reactions to the environment. In this work, we present a small-step structural operational semantics for Céu and a proof that reactions have the properties enumerated above: that for a given arbitrary timeline of input events, multiple executions of the same program always react in bounded time and arrive at the same final finite memory state.

References

  1. A. Adya et al. 2002. Cooperative Task Management Without Manual Stack Management. In Proceedings of ATEC’02. USENIX Association, 289–302. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Sidharta Andalam, Partha Roop, and Alain Girault. 2010. Predictable multithreading of embedded applications using PRET-C. In Proceeding of MEMOCODE’10 . IEEE, 159–168. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Albert Benveniste, Paul Caspi, Stephen A. Edwards, Nicolas Halbwachs, Paul Le Guernic, and Robert De Simone. 2003. The synchronous languages twelve years later. In Proceedings of the IEEE, Vol. 91. 64–83.Google ScholarGoogle ScholarCross RefCross Ref
  4. Gérard Berry. 1993. Preemption in Concurrent Systems.. In FSTTCS (LNCS), Vol. 761. Springer, 72–93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Gérard Berry. 1999. The Constructive Semantics of Pure Esterel (draft version 3) . Ecole des Mines de Paris and INRIA.Google ScholarGoogle Scholar
  6. Gérard Berry. 2000. The Esterel-V5 Language Primer. CMA and Inria, Sophia-Antipolis, France. Version 5.10, Release 2.0.Google ScholarGoogle Scholar
  7. Frédéric Boussinot. 1991. Reactive C: An extension of C to program reactive systems. Software: Practice and Experience 21, 4 (1991), 401– 428. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Frédéric Boussinot and Robert De Simone. 1991. The Esterel language. Proc. IEEE 79, 9 (Sep 1991), 1293–1304.Google ScholarGoogle ScholarCross RefCross Ref
  9. Robert de Simone, Jean-Pierre Talpin, and Dumitru Potop-Butucaru. 2005. The Synchronous Hypothesis and Synchronous Languages. In Embedded Systems Handbook, R. Zurawski (Ed.).Google ScholarGoogle Scholar
  10. Adam Dunkels, Oliver Schmidt, Thiemo Voigt, and Muneeb Ali. 2006. Protothreads: simplifying event-driven programming of memoryconstrained embedded systems. In Proceedings of SenSys’06. ACM, 29–42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. David Harel and Amnon Naamad. 1996. The STATEMATE semantics of statecharts. ACM Transactions on Software Engineering and Methodology 5, 4 (1996), 293–333. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Marcin Karpinski and Vinny Cahill. 2007. High-Level Application Development is Realistic for Wireless Sensor Networks. In Proceedings of SECON’07 . 610–619.Google ScholarGoogle ScholarCross RefCross Ref
  13. Ingo Maier, Tiark Rompf, and Martin Odersky. 2010. Deprecating the observer pattern . Technical Report.Google ScholarGoogle Scholar
  14. ORACLE. 2011. Java Thread Primitive Deprecation. http: //docs.oracle.com/javase/6/docs/technotes/guides/concurrency/ threadPrimitiveDeprecation.html (accessed in Aug-2014). (2011).Google ScholarGoogle Scholar
  15. Gordon D. Plotkin. 1981. A Structural Approach to Operational Semantics . Technical Report 19. Computer Science Departement, Aarhus University, Aarhus, Denmark.Google ScholarGoogle Scholar
  16. Guido Salvaneschi et al. 2014. REScala: Bridging between objectoriented and functional style in reactive applications. In Proceedings of Modularity’13 . ACM, 25–36. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Francisco Sant’anna, Roberto Ierusalimschy, Noemi Rodriguez, Silvana Rossetto, and Adriano Branco. 2017. The Design and Implementation of the Synchronous Language CÉU. ACM Trans. Embed. Comput. Syst. 16, 4, Article 98 (July 2017), 26 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Francisco Sant’Anna, Noemi Rodriguez, and Roberto Ierusalimschy. 2015. Structured Synchronous Reactive Programming with Céu. In Proceedings of Modularity’15 . Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Francisco Sant’Anna, Noemi Rodriguez, Roberto Ierusalimschy, Olaf Landsiedel, and Philippas Tsigas. 2013. Safe System-level Concurrency on Resource-Constrained Nodes. In Proceedings of SenSys’13. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Rodrigo Santos, Guilherme Lima, Francisco Sant’Anna, and Noemi Rodriguez. 2016. Céu-Media: Local Inter-Media Synchronization Using Céu. In Proceedings of WebMedia’16. ACM, New York, NY, USA, 143– 150. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Michael von der Beeck. 1994. A comparison of statecharts variants. In Proceedings of FTRTFT’94 . Springer, 128–148. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Reinhard von Hanxleden. 2009. SyncCharts in C: a proposal for lightweight, deterministic concurrency. In Proceedings EMSOFT’09. ACM, 225–234. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A memory-bounded, deterministic and terminating semantics for the synchronous programming language Céu

        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!