Abstract
CéU is a synchronous language targeting soft real-time systems. It is inspired by Esterel and has a simple semantics with fine-grain control over program execution. CéU uses an event-triggered notion of time that enables compile-time checks to detect conflicting concurrent statements, resulting in deterministic and concurrency-safe programs. We present the particularities of our design in comparison to Esterel, such as stack-based internal events, concurrency checks, safe integration with C, and first-class timers. We also present two implementation back ends: one aiming for resource efficiency and interoperability with C, and another as a virtual machine that allows remote reprogramming.
- Sidharta Andalam, Partha Roop, and Alain Girault. 2010. Predictable multithreading of embedded applications using PRET-C. In Proceedings of the MEMOCODE Conference (MEMOCODE’10). IEEE, Los Alamitos, CA, 159--168. Google Scholar
Digital Library
- Austin Armbruster, Jason Baker, Antonio Cunei, Chapman Flack, David Holmes, Filip Pizlo, Edward Pla, Marek Prochazka, and Jan Vitek. 2007. A real-time Java virtual machine with applications in avionics. ACM Transactions on Embedded Computing Systems 7, 1, 5.Google Scholar
Digital Library
- Faisal Aslam, Luminous Fennell, Christian Schindelhauer, Peter Thiemann, Gidon Ernst, Elmar Haussmann, Stefan Rührup, and Zastash A. Uzmi. 2010. Optimized Java binary and virtual machine for tiny motes. In Proceedings of the DCOSS Conference (DCOSS’10). 15--30. Google Scholar
Digital Library
- Jean-Christophe Baillie. 2005. Urbi: Towards a universal robotic low-level programming language. In Proceedings of the International Conference on Intelligent Robots and Systems. IEEE, Los Alamitos, CA, 820--825. Google Scholar
Cross Ref
- Albert Benveniste, Paul Caspi, Stephen A. Edwards, Nicolas Halbwachs, Paul Le Guernic, and Robert De Simone. 2003. The synchronous languages twelve years later. Proceedings of the IEEE 91, 64--83. Google Scholar
Cross Ref
- Gérard Berry. 1993. Preemption in concurrent systems. In Foundations of SoftwareTechnology and Theoretical Computer Science. Lecture Notes in Computer Science, Vol. 761. Springer, 72--93. Google Scholar
Cross Ref
- Gérard Berry. 1999. The Constructive Semantics of Pure Esterel (Draft Version 3). Ecole des Mines de Paris and INRIA.Google Scholar
- Gérard Berry. 2000. The Esterel-V5 Language Primer (Version 5.10, Release 2.0). CMA and Inria, Sophia-Antipolis, France.Google Scholar
- G. Berry, S. Ramesh, and R. K. Shyamasundar. 1993. Communicating reactive processes. In Proceedings of the POPL Conference (POPL’93). ACM, New York, NY, 85--98. Google Scholar
Digital Library
- Marian Boldt, Claus Traulsen, and Reinhard von Hanxleden. 2008. Worst case reaction time analysis of concurrent reactive programs. Electronic Notes in Theoretical Computer Science 203, 4, 65--79. Google Scholar
Digital Library
- Gregory Bollella and James Gosling. 2000. The real-time specification for Java. Computer 33, 6, 47--54. Google Scholar
Digital Library
- T. Bourke and A. Sowmya. 2009. Delays in Esterel. In Proceedings of the SYNCHRON Conference (SYNCHRON’09). 55.Google Scholar
- Frédéric Boussinot. 1991. Reactive C: An extension of C to program reactive systems. Software: Practice and Experience 21, 4, 401--428. Google Scholar
Digital Library
- Frédéric Boussinot. 1998. SugarCubes Implementation of Causality. Retrieved June 5, 2017, from http://www-sop.inria.fr/meije/rp/RapportsRecherche/RR-3487.pdfGoogle Scholar
- Frédéric Boussinot and Robert De Simone. 1991. The Esterel language. Proceedings of the IEEE 79, 9, 1293--1304. Google Scholar
Cross Ref
- Adriano Branco, Francisco Sant’Anna, Roberto Ierusalimschy, Noemi Rodriguez, and Silvana Rossetto. 2015. Terra: Flexibility and safety in wireless sensor networks. ACM Transactions on Sensor Networks 11, 4, Article No. 59. DOI:http://dx.doi.org/10.1145/2811267 Google Scholar
Digital Library
- Niels Brouwers, Peter Corke, and Koen Langendoen. 2008. Darjeeling, a Java compatible virtual machine for microcontrollers. In Proceedings of the ACM/IFIP/USENIX Middleware’08 Conference Companion. ACM, New York, NY, 18--23. Google Scholar
Digital Library
- Jonathan Chaffer. 2009. Learning JQuery 1.3: Better Interaction and Web Development with Simple JavaScript Techniques. Packt Publishing Ltd.Google Scholar
- Etienne Closse, Michel Poize, Jacques Pulou, Patrick Venier, and Daniel Weil. 2002. Saxo--RT: Interpreting Esterel semantic on a sequential execution structure. Electronic Notes in Theoretical Computer Science 65, 5, 80--94. Google Scholar
Cross Ref
- M. W. Sajeewa Dayaratne, Partha S. Roop, and Zoran Salcic. 2005. Direct execution of Esterel using reactive microprocessors. In Proceedings of the SLAP Conference (SLAP’05).Google Scholar
- Ana Lúcia de Moura and Roberto Ierusalimschy. 2009. Revisiting coroutines. ACM Transactions on Programming Languages and Systems 31, 2, 6:1--6:31.Google Scholar
Digital Library
- Robert de Simone, Jean-Pierre Talpin, and Dumitru Potop-Butucaru. 2005. The synchronous hypothesis and synchronous languages. In Embedded Systems Handbook, (2nd ed.), R. Zurawski (Ed.). CRC Press, Boca Raton, FL, 8--1. Google Scholar
Cross Ref
- Adam Dunkels, Oliver Schmidt, Thiemo Voigt, and Muneeb Ali. 2006. Protothreads: Simplifying event-driven programming of memory-constrained embedded systems. In Proceedings of the SenSys Conference (SenSys’06). ACM, New York, NY, 29--42. Google Scholar
Digital Library
- Robert Eckstein, Marc Loy, and Dave Wood. 1998. Java Swing. O’Reilly 8 Associates.Google Scholar
- Stephen A. Edwards. 1999. Compiling Esterel into sequential code. In Proceedings of the 7th International Workshop on Hardware/Software Codesign. ACM, New York, NY, 147--151.Google Scholar
- Stephen A. Edwards. 2003. Tutorial: Compiling concurrent languages for sequential processors. ACM Transactions on Design Automation of Electronic Systems 8, 2, 141--187. Google Scholar
Digital Library
- Stephen A. Edwards. 2005. Using and Compiling Esterel. In Proceedings of the MEMOCODE’05 Tutorial.Google Scholar
- David Gay, Philip Levis, Robert von Behren, Matt Welsh, Eric Brewer, and David Culler. 2003. The nesC language: A holistic approach to networked embedded systems. In Proceedings of the PLDI Conference (PLDI’03). 1--11. Google Scholar
Digital Library
- Nicolas Halbwachs. 1994. Synchronous Programming of Reactive Systems. Vol. 215. Springer Science 8 Business Media.Google Scholar
Digital Library
- Grégoire Hamon and John Rushby. 2007. An operational semantics for stateflow. International Journal on Software Tools for Technology Transfer 9, 5--6, 447--456. Google Scholar
Digital Library
- David Harel and Amnon Naamad. 1996. The STATEMATE semantics of statecharts. ACM Transactions on Software Engineering and Methodology 5, 4, 293--333. Google Scholar
Digital Library
- Wahbi Haribi. 2012. Compiling Esterel for multi-core execution. In Proceedings of the Synchrone Sprachen Seminar. 45.Google Scholar
- Jason Hill, Robert Szewczyk, Alec Woo, Seth Hollar, David Culler, and Kristofer Pister. 2000. System architecture directions for networked sensors. ACM SIGPLAN Notices 35, 11, 93--104. Google Scholar
Digital Library
- Marcin Karpinski and Vinny Cahill. 2007. High-level application development is realistic for wireless sensor networks. In Proceedings of the SECON Conference (SECON’07). 610--619. Google Scholar
Cross Ref
- Oliver Kasten and Kay Römer. 2005. Beyond event handlers: Programming wireless sensors with attributed state machines. In Proceedings of the ISPN Conference (IPSN’05). 45--52. Google Scholar
Cross Ref
- Hermann Kopetz. 2011. Real-Time Systems: Design Principles for Distributed Embedded Applications. Springer Science 8 Business Media.Google Scholar
Digital Library
- Xin Li, Jan Lukoschus, Marian Boldt, Michael Harder, and Reinhard von Hanxleden. 2005. An Esterel processor with full preemption support and its worst case reaction time analysis. In Proceedings of the CSES Conference (CASES’05). ACM, New York, NY, 225--236. Google Scholar
Digital Library
- Louis Mandel and Marc Pouzet. 2005. ReactiveML: A reactive extension to ML. In Proceedings of the PPDP Conference (PPDP’05). ACM, New York, NY, 82--93. Google Scholar
Digital Library
- Robert Nystrom. 2014. Game Programming Patterns. Genever Benning.Google Scholar
- John K. Ousterhout. 1991. An X11 toolkit based on the TCL language. In Proceedings of the USENIX Winter Conference. 105--116.Google Scholar
- John K. Ousterhout. 1996. Why Threads Are a Bad Idea (for most purposes). Retrieved June 5, 2017, from https://web.stanford.edu/~ouster/cgi-bin/papers/threads.pdf.Google Scholar
- Becky Plummer, Mukul Khajanchi, and Stephen A. Edwards. 2006. An Esterel virtual machine for embedded systems. In Proceedings of the SLAP Conference (SLAP’06).Google Scholar
- P. S. Roop, Z. Salcic, and M. W. Dayaratne. 2004. Towards direct execution of Esterel programs on reactive processors. In Proceedings of the EMSOFT Conference (EMSOFT’04). ACM, New York, NY, 240--248. Google Scholar
Digital Library
- Francisco Sant’Anna. 2013. Safe System-Level Concurrency on Resource-Constrained Nodes with Céu. Ph.D. Dissertation. PUC--Rio.Google Scholar
- Francisco Sant’Anna, Noemi Rodriguez, and Roberto Ierusalimschy. 2012. Céu: Embedded, Safe, and Reactive Programming. Technical Report 12/12. PUC-Rio.Google Scholar
- Francisco Sant’Anna, Noemi Rodriguez, and Roberto Ierusalimschy. 2013a. Advanced control reactivity for embedded systems. In Proceedings of the Workshop on Reactivity, Events, and Modularity (REM’13).Google Scholar
- Francisco Sant’Anna, Noemi Rodriguez, and Roberto Ierusalimschy. 2015. Structured synchronous reactive programming with Céu. In Proceedings of the Modularity Conference (Modularity’15).Google Scholar
Digital Library
- Francisco Sant’Anna, Noemi Rodriguez, Roberto Ierusalimschy, Olaf Landsiedel, and Philippas Tsigas. 2013b. Safe system-level concurrency on resource-constrained nodes. In Proceedings of the SenSys Conference (SenSys’13). ACM, New York, NY. Google Scholar
Digital Library
- Klaus Schneider and Michael Wenz. 2001. A new method for compiling schizophrenic synchronous programs. In Proceedings of the CASES Conference (CASES’01). ACM, New York, NY, 49--58. Google Scholar
Digital Library
- Ellen M. Sentovich. 1997. Quick conservative causality analysis. In Proceedings of the 10th International Symposium on System Synthesis. IEEE, Los Alamitos, CA, 2--8. Google Scholar
Cross Ref
- Thomas R. Shiple, Gerard Berry, and Hemé Touati. 1996. Constructive analysis of cyclic circuits. In Proceedings of the ED and TC Conference (ED8TC’96). IEEE, Los Alamitos, CA, 328--333. Google Scholar
Cross Ref
- Olivier Tardieu and Robert De Simone. 2004. Curing schizophrenia by program rewriting in Esterel. In Proceedings of the MEMOCODE Conference (MEMOCODE’04). IEEE, Los Alamitos, CA, 39--48. Google Scholar
Digital Library
- Stefan Tilkov and Steve Vinoski. 2010. Node.js: Using JavaScript to build high-performance network programs. IEEE Internet Computing 6, 80--83. Google Scholar
Digital Library
- Michael von der Beeck. 1994. A comparison of statecharts variants. In Proceedings of the FTRTFT Conference (FTRTFT’94). 128--148.Google Scholar
- Reinhard von Hanxleden. 2009. SyncCharts in C: A proposal for light-weight, deterministic concurrency. In Proceedings of the EMSOFT Conference (EMSOFT’09). ACM, Los Alamitos, CA, 225--234. Google Scholar
Digital Library
- 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: HW/SW-synthesis for a conservative extension of synchronous statecharts. In Proceedings of the PLDI Conference (PLDI’14). ACM, New York, NY, 372--383. DOI:http://dx.doi.org/10.1145/2594291.2594310 Google Scholar
Digital Library
- 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 Transactions on Embedded Computing Systems 13, 4 (Suppl), Article No. 144. DOI:http://dx.doi.org/10.1145/2627350 Google Scholar
Digital Library
- Daniel Weil, Valérie Bertin, Etienne Closse, Michel Poize, Patrick Venier, and Jacques Pulou. 2000. Efficient compilation of ESTEREL for real-time embedded systems. In Proceedings of the CASES Conference (CASES’00). ACM, New York, NY, 2--8. Google Scholar
Digital Library
- Simon Yuan, Li Hsien Yoong, and Partha S. Roop. 2011. Compiling Esterel for multi-core execution. In Proceedings of the 14th DSD Conference (DSD’11). IEEE, Los Alamitos, CA, 727--735. Google Scholar
Digital Library
- Jeong-Han Yun, Chul-Joo Kim, Seonggun Kim, Kwang-Moo Choe, and Taisook Han. 2013. Detection of harmful schizophrenic statements in Esterel. ACM Transactions on Embedded Computing Systems 12, 3, 80.Google Scholar
Digital Library
Index Terms
The Design and Implementation of the Synchronous Language CÉU
Recommendations
Structured synchronous reactive programming with Céu
MODULARITY 2015: Proceedings of the 14th International Conference on ModularityStructured synchronous reactive programming (SSRP) augments classical structured programming (SP) with continuous interaction with the environment. We advocate SSRP as viable in multiple domains of reactive applications and propose a new abstraction ...
Sequentially Constructive Concurrency—A Conservative Extension of the Synchronous Model of Computation
Special Issue on Real-Time and Embedded Technology and Applications, Domain-Specific Multicore Computing, Cross-Layer Dependable Embedded Systems, and Application of Concurrency to System Design (ACSD'13)Synchronous languages ensure determinate concurrency but at the price of restrictions on what programs are considered valid, or constructive. Meanwhile, sequential languages such as C and Java offer an intuitive, familiar programming paradigm but ...
Transparent standby for low-power, resource-constrained embedded systems: a programming language-based approach (short WIP paper)
LCTES '18Standby efficiency for connected devices is one of the priorities of the G20’s Energy Efficiency Action Plan. We propose transparent programming language mechanisms to enforce that applications remain in the deepest standby modes for the longest periods ...






Comments