[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2790449.2790509acmotherconferencesArticle/Chapter ViewAbstractPublication PagesppdpConference Proceedingsconference-collections
research-article

ReactiveML, ten years later

Published: 14 July 2015 Publication History

Abstract

Ten years ago we introduced ReactiveML, an extension of a strict ML language with synchronous parallelism à la Esterel to program reactive applications. Our purpose was to demonstrate that synchronous language principles, originally invented and used for critical real-time control software, would integrate well with ML and prove useful in a wider context: reactive applications with complex data structures and sequential algorithms, organized as a dynamically evolving set of tightly synchronized parallel tasks.
While all ReactiveML programs presented at PPDP'05 still compile, the language has evolved continuously to incorporate novel programming constructs, compilation techniques and dedicated static analyses. ReactiveML has been used for applications that we never anticipated: the simulation of large-scale ad-hoc and sensor networks, an interactive debugger, and interactive mixed music. These applications were only possible due to the efficient compilation of ReactiveML into sequential code, which we present here for the first time. We also present a parallel implementation that uses work-stealing techniques through shared memory. Finally, we give a retrospective view on ReactiveML over the past ten years.

References

[1]
J. Arias, M. Desainte-Catherine, S. Salvati, and C. Rueda. Executing hierarchical interactive scores in ReactiveML. In Journées d'Informatique Musicale, 2014.
[2]
G. Baudart, F. Jacquemard, L. Mandel, and M. Pouzet. A synchronous embedding of Antescofo, a domain-specific language for interactive mixed music. In Thirteen International Conference on Embedded Software, 2013.
[3]
A. Benveniste, P. Caspi, S. A. Edwards, N. Halbwachs, P. L. Guernic, and R. de Simone. The synchronous languages 12 years later. Proceedings of the IEEE, 91(1):64--83, 2003.
[4]
G. Berry. Esterel on hardware. In Mechanized reasoning and hardware design, pages 87--104. Prentice-Hall, Upper Saddle River, NJ, 1992.
[5]
G. Berry. Preemption in concurrent systems. In Proceedings of the 13th Conference on Foundations of Software Technology and Theoretical Computer Science, pages 72--93, 1993.
[6]
G. Berry. The constructive semantics of pure Esterel, 1996.
[7]
G. Berry, A. Bouali, X. Fornari, E. Ledinot, E. Nassor, and R. de Simone. Esterel: a formal method applied to avionic software development. Science of Computer Programming, 36(1):5--25, 2000.
[8]
G. Berry and G. Gonthier. The Esterel synchronous programming language: Design, semantics, implementation. Science of Computer Programming, 19(2):87--152, 1992.
[9]
G. Berry, C. Nicolas, and M. Serrano. Hiphop: a synchronous reactive extension for Hop. In Proceedings of the 1st ACM SIGPLAN international workshop on Programming language and systems technologies for internet clients, pages 49--56. ACM, 2011.
[10]
F. Boussinot. Reactive C: an extension of C to program reactive systems. Software: Practice and Experience, 21(4):401--428, 1991.
[11]
F. Boussinot. Reactive Programming of Cellular Automata. RR 5183, INRIA, 2004.
[12]
F. Boussinot. Fairthreads: Mixing cooperative and preemptive threads in C. Concurrency and Computation: Practice and Experience, 18(5):445--469, 2006.
[13]
F. Boussinot and R. de Simone. The SL synchronous language. IEEE Trans. Softw. Eng., 22(4), 1996.
[14]
F. Boussinot and J.-F. Susini. The SugarCubes tool box: A reactive Java framework. Software Practice and Experience, 28(4):1531--1550, 1998.
[15]
P. Caspi and M. Pouzet. Synchronous Kahn Networks. In ACM SIGPLAN International Conference on Functional Programming (ICFP), 1996.
[16]
D. Chase and Y. Lev. Dynamic circular work-stealing deque. In Proceedings of the seventeenth annual ACM symposium on Parallelism in algorithms and architectures, pages 21--28. ACM, 2005.
[17]
C. Deleuze. Programmation réactive en OCaml. Journal Européen des Systèmes Automatisés, 43(7-8-9):757--771, 2009.
[18]
N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. The synchronous dataflow programming language LUSTRE. Proceedings of the IEEE, 79(9):1305--1320, 1991.
[19]
L. Hazard. Simple. An efficient implementation of Junior.
[20]
L. Hazard, J.-F. Susini, and F. Boussinot. The Junior reactive kernel. RR 3732, INRIA, 1999.
[21]
M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, 2008.
[22]
X. Leroy, D. Doligez, A. Frisch, J. Garrigue, D. Rémy, and J. Vouillon. The Objective Caml system release 4.02 Documentation and user's manual. INRIA, 2014.
[23]
L. Mandel. Conception, Sémantique et Implantation de ReactiveML : un langage à la ML pour la programmation réactive. PhD thesis, Université Paris 6, 2006.
[24]
L. Mandel and F. Benbadis. Simulation of mobile ad hoc network protocols in ReactiveML. In Proceedings of Synchronous Languages, Applications, and Programming. Electronic Notes in Theoretical Computer Science, 2005.
[25]
L. Mandel and C. Pasteur. Reactivity of cooperative systems. In Proceedings of 21st International Static Analysis Symposium, 2014.
[26]
L. Mandel, C. Pasteur, and M. Pouzet. Time Refinement in a Functional Synchronous Language. In 15th International Symposium on Principles and Practice of Declarative Programming, 2013.
[27]
L. Mandel and F. Plateau. Interactive programming of reactive systems. In Proceedings of Model-driven High-level Programming of Embedded Systems, 2008.
[28]
L. Mandel and M. Pouzet. ReactiveML, a reactive extension to ML. In Proceedings of 7th ACM SIGPLAN International Symposium on Principles and Practice of Declarative Programming, 2005.
[29]
D. Potop-Butucaru, S. Edwards, and G. Berry. Compiling Esterel. Springer, 2007.
[30]
M. Pouzet. Lucid Synchrone, version 3. Tutorial and reference manual. Université Paris-Sud, LRI, 2006.
[31]
C. Reynolds. Flocks, herds and schools: A distributed behavioral model. In ACM SIGGRAPH Computer Graphics, volume 21, pages 25--34. ACM, 1987.
[32]
J. Reynolds. The Discoveries of Continuations. Lisp and Symbolic Computation, 6(3/4):233--248, 1993.
[33]
L. Samper, F. Maraninchi, L. Mounier, and L. Mandel. GLONEMO: Global and accurate formal models for the analysis of ad hoc sensor networks. In Proceedings of the First International Conference on Integrated Internet Ad hoc and Sensor Networks, 2006.
[34]
J. Vouillon. Lwt: a cooperative thread library. In Proceedings of the 2008 ACM SIGPLAN workshop on ML, pages 3--12. ACM, 2008.
[35]
P. Wadler. Deforestation: transforming programs to eliminate trees. Theoretical Computer Science, 73:231--248, 1990.
[36]
Z. Wan and P. Hudak. Functional reactive programming from first principles. In International Conference on Programming Language, Design and Implementation, 2000.
[37]
M. Wand. Continuation-based multiprocessing. In Proceedings of the 1980 ACM Conference on LISP and Functional Programming, 1980.

Cited By

View all
  • (2024)The Functional, the Imperative, and the Sudoku: Getting Good, Bad, and Ugly to Get Along (Functional Pearl)Proceedings of the ACM on Programming Languages10.1145/36746318:ICFP(177-202)Online publication date: 15-Aug-2024
  • (2024)The Sparse Synchronous Model on Real HardwareACM Transactions on Embedded Computing Systems10.1145/357292023:5(1-30)Online publication date: 14-Aug-2024
  • (2021)Toward a Lingua Franca for Deterministic Concurrent SystemsACM Transactions on Embedded Computing Systems10.1145/344812820:4(1-27)Online publication date: 18-May-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
PPDP '15: Proceedings of the 17th International Symposium on Principles and Practice of Declarative Programming
July 2015
263 pages
ISBN:9781450335164
DOI:10.1145/2790449
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 July 2015

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Conference

PPDP '15

Acceptance Rates

Overall Acceptance Rate 230 of 486 submissions, 47%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 19 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)The Functional, the Imperative, and the Sudoku: Getting Good, Bad, and Ugly to Get Along (Functional Pearl)Proceedings of the ACM on Programming Languages10.1145/36746318:ICFP(177-202)Online publication date: 15-Aug-2024
  • (2024)The Sparse Synchronous Model on Real HardwareACM Transactions on Embedded Computing Systems10.1145/357292023:5(1-30)Online publication date: 14-Aug-2024
  • (2021)Toward a Lingua Franca for Deterministic Concurrent SystemsACM Transactions on Embedded Computing Systems10.1145/344812820:4(1-27)Online publication date: 18-May-2021
  • (2019)Deterministic Actors2019 Forum for Specification and Design Languages (FDL)10.1109/FDL.2019.8876922(1-8)Online publication date: Sep-2019
  • (2018)Reactive chatbot programmingProceedings of the 5th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems10.1145/3281278.3281282(21-30)Online publication date: 4-Nov-2018
  • (2018)On the Semantics of Distributed Reactive Programming: The Cost of ConsistencyIEEE Transactions on Software Engineering10.1109/TSE.2018.283310944:7(689-711)Online publication date: 1-Jul-2018
  • (2017)Session-Based Concurrency, ReactivelyFormal Techniques for Distributed Objects, Components, and Systems10.1007/978-3-319-60225-7_6(74-91)Online publication date: 28-May-2017

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media