Abstract
Many programming languages and programming frameworks focus on parallel and distributed computing. Several frameworks are based on actors, which provide a more disciplined model for concurrency than threads. The interactions between actors, however, if not constrained, admit nondeterminism. As a consequence, actor programs may exhibit unintended behaviors and are less amenable to rigorous testing. We show that nondeterminism can be handled in a number of ways, surveying dataflow dialects, process networks, synchronous-reactive models, and discrete-event models. These existing approaches, however, tend to require centralized control, pose challenges to modular system design, or introduce a single point of failure. We describe “reactors,” a new coordination model that combines ideas from several of these approaches to enable determinism while preserving much of the style of actors. Reactors promote modularity and allow for distributed execution. By using a logical model of time that can be associated with physical time, reactors also provide control over timing. Reactors also expose parallelism that can be exploited on multicore machines and in distributed configurations without compromising determinacy.
- Gul A. Agha, Ian A. Mason, Scott F. Smith, and Carolyn L. Talcott. 1997. A foundation for actor computation. J. Funct. Prog. 7, 1 (1997), 1--72.Google Scholar
Digital Library
- Joaquín Aguado, Michael Mendler, Marc Pouzet, Partha Roop, and Reinhard von Hanxleden. 2018. Deterministic concurrency: A clock-synchronised shared memory approach. In Programming Languages and Systems (ESOP), Vol. LNCS 10801. Springer. DOI:https://doi.org/10.1007/978-3-319-89884-1_4.Google Scholar
- Charles André. 1996. SyncCharts: A Visual Representation of Reactive Behaviors. Report RR 95--52. University of Sophia-Antipolis.Google Scholar
- Joe Armstrong, Robert Virding, Claes Wikström, and Mike Williams. 1996. Concurrent Programming in Erlang (2nd ed.). Prentice Hall.Google Scholar
- Henry C. Baker Jr and Carl Hewitt. 1977. The incremental garbage collection of processes. ACM Sigplan Not. 12, 8 (1977), 55--59.Google Scholar
Digital Library
- Albert Benveniste and Gérard Berry. 1991. The synchronous approach to reactive and real-time systems. Proc. IEEE 79, 9 (1991), 1270--1282.Google Scholar
Cross Ref
- Albert Benveniste and Paul Le Guernic. 1990. Hybrid dynamical systems theory and the SIGNAL language. IEEE Trans. Autom. Contr. 35, 5 (1990), 525--546.Google Scholar
Cross Ref
- Géard Berry and Georges Gonthier. 1992. The ESTEREL synchronous programming language: Design, semantics, implementation. Sci. Comput. Prog. 19, 2 (Nov. 1992), 87--152. DOI:https://doi.org/10.1016/0167-6423(92)90005-V.Google Scholar
Digital Library
- Gerard Berry and Ellen Sentovich. 2001. Multiclock Esterel. In Correct Hardware Design and Verification Methods (CHARME), Vol. LNCS 2144. Springer-Verlag.Google Scholar
- Timothy Bourke and A. Sowmya. 2009. Delays in Esterel. In SYNCHRON, Vol. Seminar 09481.Google Scholar
- Frédéric Boussinot. 1991. Reactive C: An extension to C to program reactive systems. Softw. Pract. Exper. 21, 4 (Apr. 1991), 401--428.Google Scholar
Digital Library
- Frédéric Boussinot and Robert de Simone. 1996. The SL synchronous language. IEEE Trans. Softw. Eng. 22, 4 (Apr. 1996), 256--266.Google Scholar
Digital Library
- Giorgio C. Buttazzo. 2005. Hard Real-time Computing Systems: Predictable Scheduling Algorithms and Applications (2nd ed.). Springer.Google Scholar
- C. G. Cassandras. 1993. Discrete Event Systems, Modeling and Performance Analysis. Irwin.Google Scholar
- Adam Cataldo, Edward A. Lee, Xiaojun Liu, Eleftherios Matsikoudis, and Haiyang Zheng. 2006. A constructive fixed-point theorem and the feedback semantics of timed systems. In Proceedings of the Workshop on Discrete Event Systems (WODES’06).Google Scholar
Cross Ref
- K. Mani Chandy and Jayadev Misra. 1979. Distributed simulation: A case study in design and verification of distributed programs. IEEE Trans. Softw. Eng. 5, 5 (1979), 440--452.Google Scholar
Digital Library
- James C. Corbett et al. 2013. Spanner: Google’s globally-distributed database. ACM Trans. Comput. Syst. 31, 8 (2013).Google Scholar
- Frank S. de Boer, Vlad Serbanescu, Reiner Hähnle, Ludovic Henrio, Justine Rochas, Crystal Chang Din, Einar Broch Johnsen, Marjan Sirjani, Ehsan Khamespanah, Kiko Fernandez-Reyes, and Albert Mingkun Yang. 2017. A survey of active object languages. Comput. Surv. 50, 5 (2017), 76:1--76:39.Google Scholar
- Jack B. Dennis. 1974. First Version Data Flow Procedure Language. Report MAC TM61. MIT Laboratory for Computer Science.Google Scholar
- Ankush Desai, Vivek Gupta, Ethan Jackson, Shaz Qadeer, Sriram Rajamani, and Damien Zufferey. 2013. P: Safe asynchronous event-driven programming. ACM SIGPLAN Not. 48, 6 (2013), 321--332.Google Scholar
Digital Library
- Stephen Edwards and John Hui. 2020. The sparse synchronous model. In Proceedings of the Forum for Specification and Design Languages (FDL’20). IEEE, 1--8.Google Scholar
Cross Ref
- Stephen A. Edwards and Edward A. Lee. 2003. The semantics and execution of a synchronous block-diagram language. Sci. Comput. Prog. 48, 1 (2003), 21--42.Google Scholar
Digital Library
- Moritz Eysholdt and Heiko Behrens. 2010. Xtext: Implement your language faster than the quick and dirty way. In Proceedings of the ACM International Conference Companion on Object-oriented Programming Systems Languages and Applications. ACM, 307--309.Google Scholar
Digital Library
- N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. 1991. The synchronous data flow programming language LUSTRE. Proc. IEEE 79, 9 (1991), 1305--1319.Google Scholar
- Philipp Haller and Martin Odersky. 2009. Scala actors: Unifying thread-based and event-based programming. Theoret. Comput. Sci. 410, 2--3 (2009), 202--220.Google Scholar
Digital Library
- David Harel. 1987. Statecharts: A visual formalism for complex systems. Sci. Comput. Prog. 8, 3 (1987), 231--274.Google Scholar
Digital Library
- Carl Hewitt. 1977. Viewing control structures as patterns of passing messages. J. Artif. Intell. 8, 3 (1977), 323--363.Google Scholar
Digital Library
- D. Jefferson. 1985. Virtual time. ACM Trans. Prog. Lang. Syst. 7, 3 (1985), 404--425.Google Scholar
Digital Library
- Gilles Kahn. 1974. The semantics of a simple language for parallel programming. In Proceedings of the IFIP Congress. North-Holland Publishing Co., 471--475.Google Scholar
- Gilles Kahn and D. B. MacQueen. 1977. Coroutines and networks of parallel processes. In Information Processing, B. Gilchrist (Ed.). North-Holland Publishing Co., 993--998.Google Scholar
- Philip Koopman. 2014. A Case Study of Toyota Unintended Acceleration and Software Safety. Retrieved from http://betterembsw.blogspot.com/2014/09/a-case-study-of-toyota-unintended.html.Google Scholar
- Frederick Kuhl, Richard Weatherly, and Judith Dahmann. 1999. Creating Computer Simulation Systems: An Introduction to the High Level Architecture. Prentice Hall PTR.Google Scholar
Digital Library
- Edward A. Lee. 1999. Modeling concurrent real-time processes using discrete events. Ann. Softw. Eng. 7 (1999), 25--45.Google Scholar
Digital Library
- Edward A. Lee. 2006. The problem with threads. Computer 39, 5 (2006), 33--42.Google Scholar
Digital Library
- Edward A. Lee. 2014. EECS 219D: Semantics of Discrete-Event Systems. Retrieved from https://bcourses.berkeley.edu/courses/1195544/files/folder/Lecture%20Notes?preview=45232443.Google Scholar
- Edward Ashford Lee. 2017. Plato and the Nerd — The Creative Partnership of Humans and Technology. The MIT Press.Google Scholar
- Edward A. Lee and Eleftherios Matsikoudis. 2009. The semantics of dataflow with firing. In From Semantics to Computer Science: Essays in Memory of Gilles Kahn, Gérard Huet, Gordon Plotkin, Jean-Jacques Lévy, and Yves Bertot (Eds.). Cambridge University Press.Google Scholar
- Edward A. Lee, Jan Reineke, and Michael Zimmer. 2017. Abstract PRET machines. In Proceedings of the IEEE Real-Time Systems Symposium (RTSS’17).Google Scholar
Cross Ref
- Edward A. Lee and Sanjit A. Seshia. 2017. Introduction to Embedded Systems - A Cyber-Physical Systems Approach (2nd ed.). The MIT Press, Cambridge, MA. Retrieved from http://LeeSeshia.org.Google Scholar
- Edward A. Lee and Haiyang Zheng. 2007. Leveraging synchronous language principles for heterogeneous modeling and design of embedded systems. In Proceedings of the International Conference on Embedded Software (EMSOFT’07). ACM, 114--123.Google Scholar
- Xiaojun Liu and Edward A. Lee. 2008. CPO semantics of timed interactive actor networks. Theor. Comput. Sci. 409, 1 (2008), 110--125.Google Scholar
Digital Library
- Xiaojun Liu, Eleftherios Matsikoudis, and Edward A. Lee. 2006. Modeling timed concurrent systems. In CONCUR 2006 - Concurrency Theory, Vol. LNCS 4137. Springer, 1--15.Google Scholar
- Marten Lohstroh. 2020. Reactors: A Deterministic Model of Concurrent Computation for Reactive Systems. Ph.D. Dissertation. EECS Department, University of California, Berkeley. Retrieved from http://www2.eecs.berkeley.edu/Pubs/TechRpts/2020/EECS-2020-235.html.Google Scholar
- Marten Lohstroh, Íñigo Íncer Romeo, Andrés Goens, Patricia Derler, Jeronimo Castrillon, Edward A. Lee, and Alberto Sangiovanni-Vincentelli. 2019. Reactors: A deterministic model for composable reactive systems. In Proceedings of the 8th International Workshop on Model-based Design of Cyber Physical Systems (CyPhy’19), Vol. LNCS 11971. Springer-Verlag.Google Scholar
- Marten Lohstroh, Martin Schoeberl, Andrés Goens, Armin Wasicek, Christopher Gill, Marjan Sirjani, and Edward A. Lee. 2019. Actors revisited for time-critical systems. In Proceedings of the 56th Design Automation Conference 2019 (DAC’19). ACM, 152:1--152:4.Google Scholar
- Oded Maler, Zohar Manna, and Amir Pnueli. 1992. From timed to hybrid systems. In Real-Time: Theory and Practice, REX Workshop. Springer-Verlag, 447--484.Google Scholar
- Louis Mandel, Cédric Pasteur, and Marc Pouzet. 2015. ReactiveML, ten years later. In Proceedings of the International Symposium on Principles and Practice of Declarative Programming (PPDP’15).Google Scholar
Digital Library
- Zohar Manna and Amir Pnueli. 1993. Verifying hybrid systems. In Hybrid Systems, Vol. LNCS 736. 4--35.Google Scholar
Cross Ref
- Eleftherios Matsikoudis and Edward A. Lee. 2013. An axiomatization of the theory of generalized ultrametric semilattices of linear signals. In International Symposium on Fundamentals of Computation Theory (FCT), Vol. LNCS 8070. Springer, 248--258.Google Scholar
- Eleftherios Matsikoudis and Edward A. Lee. 2015. The fixed-point theory of strictly causal functions. Theor. Comput. Sci. 574 (2015), 39--77.Google Scholar
Digital Library
- Christian Menard, Andrés Goens, Marten Lohstroh, and Jeronimo Castrillon. 2020. Achieving derterminism in adaptive AUTOSAR. In Proceedings of the Design, Automation and Test in Europe Conference (DATE’20).Google Scholar
- Philipp Moritz, Robert Nishihara, Stephanie Wang, Alexey Tumanov, Richard Liaw, Eric Liang, William Paul, Michael I. Jordan, and Ion Stoica. 2017. Ray: A distributed framework for emerging AI applications. CoRR abs/1712.05889 (2017).Google Scholar
Digital Library
- Walid A. Najjar, Edward A. Lee, and Guang R. Gao. 1999. Advances in the dataflow computational model. Parallel Comput. 25, 13-14 (Dec. 1999), 1907--1929.Google Scholar
Digital Library
- NASA Engineering and Safety Center. 2011. National Highway Traffic Safety Administration Toyota Unintended Acceleration Investigation. Technical Assessment Report. NASA.Google Scholar
- Sibylla Priess-Crampe and Paulo Ribenboim. 1996. Generalized ultrametric spaces I. Abhand. Math. Semin. Univ. Hamb. 66 (1996), 55--73.Google Scholar
Cross Ref
- Prokopec Aleksandar. 2018. Pluggable scheduling for the reactor programming model. In Programming with Actors: State-of-the-Art and Research Perspectives, Alessandro Ricci and Philipp Haller (Eds.). Springer International Publishing, 125--154.Google Scholar
- Aleksandar Prokopec and Martin Odersky. 2015. Isolates, channels, and event streams for composable distributed programming. In Proceedings of the ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!). ACM, New York, NY, 171--182.Google Scholar
Digital Library
- George M. Reed and A. W. Roscoe. 1988. Metric spaces as models for real-time concurrency. In Proceedings of the 3rd Workshop on Mathematical Foundations of Programming Language Semantics. 331--343.Google Scholar
- Raymond Roestenburg, Rob Bakker, and Rob Williams. 2016. Akka in Action. Manning Publications Co.Google Scholar
- Christian Schneider, Miro Spönemann, and Reinhard von Hanxleden. 2013. Just model! – Putting automatic synthesis of node-link-diagrams into practice. In Proceedings of the IEEE Symposium on Visual Languages and Human-centric Computing (VL/HCC’13), 75--82.Google Scholar
Cross Ref
- Martin Schoeberl, Wolfgang Puffitsch, Stefan Hepp, Benedikt Huber, and Daniel Prokesch. 2018. Patmos: A time-predictable microprocessor. Real-time Syst. 54, 2 (Apr. 2018), 389--423.Google Scholar
Digital Library
- Alexander Schulz-Rosengarten, Reinhard von Hanxleden, Frédéric Mallet, Robert de Simone, and Julien Deantoni. 2020. Time in SCCharts. In Languages, Design Methods, and Tools for Electronic System Design: Selected Contributions from FDL 2018, Tom J. Kazmierski, Sebastian Steinhorst, and Daniel Große (Eds.). Springer, 1--25. DOI:https://doi.org/10.1007/978-3-030-31585-6_1.Google Scholar
- Sanjit A. Seshia and Pramod Subramanyan. 2018. UCLID5: Integrating modeling, verification, synthesis and learning. In Proceedings of the 16th ACM/IEEE International Conference on Formal Methods and Models for System Design (MEMOCODE’18). IEEE, 1--10.Google Scholar
- Lui Sha, Abdullah Al-Nayeem, Mu Sun, José Meseguer, and Peter Ölveczky. 2009. PALS: Physically Asynchronous Logically Synchronous Systems. Technical Report. University of Illinois at Urbana Champaign (UIUC).Google Scholar
- B. D. Theelen, M. C. W. Geilen, T. Basten, J. P. M. Voeten, S.V. Gheorghita, and S. Stuijk. 2006. A scenario-aware data flow model for combined long-run average and worst-case performance analysis. In Proceedings of the International Conference on Formal Methods and Models for Co-design.Google Scholar
- Reinhard von Hanxleden. 2009. SyncCharts in C. Technical Report Bericht Nr. 0910. Department of Computer Science, Christian-Albrechts-Universitaet Kiel.Google Scholar
- Reinhard von Hanxleden et al. 2014. SCCharts: Sequentially constructive statecharts for safety-critical applications. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’14). ACM, New York, NY, 372--383.Google Scholar
- Reinhard Von Hanxleden, Timothy Bourke, and Alain Girault. 2017. Real-time ticks for synchronous programming. In Proceedings of the Forum on Specification and Design Languages (FDL’68). IEEE, 1--8.Google Scholar
Cross Ref
- Reinhard Wilhelm et al. 2008. The worst-case execution-time problem—overview of methods and survey of tools. ACM Trans. Embed. Comput. Syst. 7, 3 (2008), 1--53.Google Scholar
Digital Library
- R. K. Yates. 1993. Networks of real-time processes. In Proceedings of the 4th International Conference on Concurrency Theory (CONCUR’93), E. Best (Ed.), Vol. LNCS 715. Springer-Verlag.Google Scholar
Cross Ref
- Bernard Zeigler. 1976. Theory of Modeling and Simulation. Wiley Interscience, New York.Google Scholar
- Bernard P. Zeigler, Herbert Praehofer, and Tag Gon Kim. 2000. Theory of Modeling and Simulation (2nd ed.). Academic Press.Google Scholar
Digital Library
- Yang Zhao, Edward A. Lee, and Jie Liu. 2007. A programming model for time-synchronized distributed real-time systems. In Proceedings of the Real-time and Embedded Technology and Applications Symposium (RTAS’07). IEEE, 259--268.Google Scholar
Digital Library
- Ye Zhou and Edward A. Lee. 2008. Causality interfaces for actor networks. ACM Trans. Embed. Comput. Syst. 7, 3 (2008), 1--35.Google Scholar
Digital Library
Index Terms
Toward a Lingua Franca for Deterministic Concurrent Systems
Recommendations
Lazy Determinism for Faster Deterministic Multithreading
ASPLOS '19: Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating SystemsDeterministic multithreading (DMT) fundamentally requires total, deterministic ordering of synchronization operations on each synchronization variable, i.e. a partial ordering over all synchronization operations. In practice, prior DMT systems totally ...
Time-Soundness of Time Petri Nets Modelling Time-Critical Systems
Special Issue on the Internet of Things: Part 1The correctness of a time-critical system is closely related to the time of responding and performing every event. Our motivation example, alternating bit protocol, and application example, multi-track level crossing with sensors, both demonstrate that ...
Symbolic execution of concurrent systems using Petri nets
Techniques for analyzing sequential programs in order to improve their reliability have been widely studied in the past. Among the most interesting analysis techniques, we consider symbolic execution. However, analysis techniques for concurrent programs,...






Comments