skip to main content
research-article
Open Access

Toward a Lingua Franca for Deterministic Concurrent Systems

Published:18 May 2021Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle Scholar
  3. Charles André. 1996. SyncCharts: A Visual Representation of Reactive Behaviors. Report RR 95--52. University of Sophia-Antipolis.Google ScholarGoogle Scholar
  4. Joe Armstrong, Robert Virding, Claes Wikström, and Mike Williams. 1996. Concurrent Programming in Erlang (2nd ed.). Prentice Hall.Google ScholarGoogle Scholar
  5. Henry C. Baker Jr and Carl Hewitt. 1977. The incremental garbage collection of processes. ACM Sigplan Not. 12, 8 (1977), 55--59.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Albert Benveniste and Gérard Berry. 1991. The synchronous approach to reactive and real-time systems. Proc. IEEE 79, 9 (1991), 1270--1282.Google ScholarGoogle ScholarCross RefCross Ref
  7. 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 ScholarGoogle ScholarCross RefCross Ref
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. Gerard Berry and Ellen Sentovich. 2001. Multiclock Esterel. In Correct Hardware Design and Verification Methods (CHARME), Vol. LNCS 2144. Springer-Verlag.Google ScholarGoogle Scholar
  10. Timothy Bourke and A. Sowmya. 2009. Delays in Esterel. In SYNCHRON, Vol. Seminar 09481.Google ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. Frédéric Boussinot and Robert de Simone. 1996. The SL synchronous language. IEEE Trans. Softw. Eng. 22, 4 (Apr. 1996), 256--266.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Giorgio C. Buttazzo. 2005. Hard Real-time Computing Systems: Predictable Scheduling Algorithms and Applications (2nd ed.). Springer.Google ScholarGoogle Scholar
  14. C. G. Cassandras. 1993. Discrete Event Systems, Modeling and Performance Analysis. Irwin.Google ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarCross RefCross Ref
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. James C. Corbett et al. 2013. Spanner: Google’s globally-distributed database. ACM Trans. Comput. Syst. 31, 8 (2013).Google ScholarGoogle Scholar
  18. 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 ScholarGoogle Scholar
  19. Jack B. Dennis. 1974. First Version Data Flow Procedure Language. Report MAC TM61. MIT Laboratory for Computer Science.Google ScholarGoogle Scholar
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarCross RefCross Ref
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle Scholar
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. David Harel. 1987. Statecharts: A visual formalism for complex systems. Sci. Comput. Prog. 8, 3 (1987), 231--274.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Carl Hewitt. 1977. Viewing control structures as patterns of passing messages. J. Artif. Intell. 8, 3 (1977), 323--363.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. D. Jefferson. 1985. Virtual time. ACM Trans. Prog. Lang. Syst. 7, 3 (1985), 404--425.Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle Scholar
  30. 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 ScholarGoogle Scholar
  31. 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 ScholarGoogle Scholar
  32. Frederick Kuhl, Richard Weatherly, and Judith Dahmann. 1999. Creating Computer Simulation Systems: An Introduction to the High Level Architecture. Prentice Hall PTR.Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Edward A. Lee. 1999. Modeling concurrent real-time processes using discrete events. Ann. Softw. Eng. 7 (1999), 25--45.Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Edward A. Lee. 2006. The problem with threads. Computer 39, 5 (2006), 33--42.Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. 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 ScholarGoogle Scholar
  36. Edward Ashford Lee. 2017. Plato and the Nerd — The Creative Partnership of Humans and Technology. The MIT Press.Google ScholarGoogle Scholar
  37. 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 ScholarGoogle Scholar
  38. Edward A. Lee, Jan Reineke, and Michael Zimmer. 2017. Abstract PRET machines. In Proceedings of the IEEE Real-Time Systems Symposium (RTSS’17).Google ScholarGoogle ScholarCross RefCross Ref
  39. 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 ScholarGoogle Scholar
  40. 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 ScholarGoogle Scholar
  41. Xiaojun Liu and Edward A. Lee. 2008. CPO semantics of timed interactive actor networks. Theor. Comput. Sci. 409, 1 (2008), 110--125.Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. 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 ScholarGoogle Scholar
  43. 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 ScholarGoogle Scholar
  44. 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 ScholarGoogle Scholar
  45. 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 ScholarGoogle Scholar
  46. 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 ScholarGoogle Scholar
  47. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  48. Zohar Manna and Amir Pnueli. 1993. Verifying hybrid systems. In Hybrid Systems, Vol. LNCS 736. 4--35.Google ScholarGoogle ScholarCross RefCross Ref
  49. 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 ScholarGoogle Scholar
  50. Eleftherios Matsikoudis and Edward A. Lee. 2015. The fixed-point theory of strictly causal functions. Theor. Comput. Sci. 574 (2015), 39--77.Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. 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 ScholarGoogle Scholar
  52. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  53. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  54. NASA Engineering and Safety Center. 2011. National Highway Traffic Safety Administration Toyota Unintended Acceleration Investigation. Technical Assessment Report. NASA.Google ScholarGoogle Scholar
  55. Sibylla Priess-Crampe and Paulo Ribenboim. 1996. Generalized ultrametric spaces I. Abhand. Math. Semin. Univ. Hamb. 66 (1996), 55--73.Google ScholarGoogle ScholarCross RefCross Ref
  56. 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 ScholarGoogle Scholar
  57. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  58. 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 ScholarGoogle Scholar
  59. Raymond Roestenburg, Rob Bakker, and Rob Williams. 2016. Akka in Action. Manning Publications Co.Google ScholarGoogle Scholar
  60. 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 ScholarGoogle ScholarCross RefCross Ref
  61. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  62. 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 ScholarGoogle Scholar
  63. 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 ScholarGoogle Scholar
  64. 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 ScholarGoogle Scholar
  65. 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 ScholarGoogle Scholar
  66. Reinhard von Hanxleden. 2009. SyncCharts in C. Technical Report Bericht Nr. 0910. Department of Computer Science, Christian-Albrechts-Universitaet Kiel.Google ScholarGoogle Scholar
  67. 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 ScholarGoogle Scholar
  68. 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 ScholarGoogle ScholarCross RefCross Ref
  69. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  70. 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 ScholarGoogle ScholarCross RefCross Ref
  71. Bernard Zeigler. 1976. Theory of Modeling and Simulation. Wiley Interscience, New York.Google ScholarGoogle Scholar
  72. Bernard P. Zeigler, Herbert Praehofer, and Tag Gon Kim. 2000. Theory of Modeling and Simulation (2nd ed.). Academic Press.Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  74. Ye Zhou and Edward A. Lee. 2008. Causality interfaces for actor networks. ACM Trans. Embed. Comput. Syst. 7, 3 (2008), 1--35.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Toward a Lingua Franca for Deterministic Concurrent Systems

          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

          HTML Format

          View this article in HTML Format .

          View HTML Format
          About Cookies On This Site

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

          Learn more

          Got it!