skip to main content
10.1145/3631991.3632000acmotherconferencesArticle/Chapter ViewAbstractPublication PageswsseConference Proceedingsconference-collections
research-article

Developing Distributed Systems with Multiparty Functional Reactive Programming

Published: 26 December 2023 Publication History

Abstract

Functional Reactive Programming (FRP) is a programming paradigm that describes a system as a data flow between time-varying values, a concept that abstracts values that change over time. It helps describe embedded systems and GUIs. FRP is also useful for describing distributed applications, but avoiding glitches is more complicated. Glitches are inconsistencies between time-varying values caused by differences in update timing and are unavoidable in distributed systems where communication delays are inevitable. Existing methods to avoid glitching incur high communication overhead to ensure consistency among the system’s time-varying values. To address this problem, we propose the concept of multiparty FRP and a language MPFRP based on it. A party is a subset of the time-varying values that make up the system and are updated independently. We propose avoiding glitches with small communication overhead by guaranteeing consistency within each party.

References

[1]
Engineer Bainomugisha, Andoni Lombide Carreton, Tom Van Cutsem, Stijn Mostinckx, and Wolfgang De Meuter. 2013. A Survey on Reactive Programming. Comput. Surveys 45, 4 (2013), 52:1–52:34. https://doi.org/10.1145/2501654.2501666
[2]
Albert Cohen, Léonard Gérard, and Marc Pouzet. 2012. Programming Parallelism with Futures in Lustre. In Proceedings of the Tenth ACM International Conference on Embedded Software(EMSOFT ’12). ACM, 197–206. https://doi.org/10.1145/2380356.2380394
[3]
Gregory H. Cooper and Shriram Krishnamurthi. 2006. Embedding Dynamic Dataflow in a Call-by-Value Language. In Programming Languages and Systems, Peter Sestoft (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 294–308.
[4]
Joscha Drechsler, Guido Salvaneschi, Ragnar Mogk, and Mira Mezini. 2014. Distributed REScala: An Update Algorithm for Distributed Reactive Programming. In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications (Portland, Oregon, USA) (OOPSLA ’14). ACM, New York, NY, USA, 361–376. https://doi.org/10.1145/2660193.2660240
[5]
Conal Elliott and Paul Hudak. 1997. Functional Reactive Animation. In 2nd ACM SIGPLAN International Conference on Functional Programming (ICFP 1997). ACM, 263–273. https://doi.org/10.1145/258949.258973
[6]
Conal M. Elliott. 2009. Push-Pull Functional Reactive Programming. In Proceedings of the 2nd ACM SIGPLAN Symposium on Haskell (Edinburgh, Scotland) (Haskell ’09). ACM, New York, NY, USA, 25–36. https://doi.org/10.1145/1596638.1596643
[7]
Frédéric Fort and Julien Forget. 2022. Synchronous Semantics of Multi-Mode Multi-Periodic Systems. In Proceedings of the 37th ACM/SIGAPP Symposium on Applied Computing(SAC ’22). ACM, 1248–1257. https://doi.org/10.1145/3477314.3507271
[8]
Tetsuo Kamina, Tomoyuki Aotani, and Hidehiko Masuhara. 2021. Signal Classes: A Mechanism for Building Synchronous and Persistent Signal Networks. In 35th European Conference on Object-Oriented Programming (ECOOP 2021)(Leibniz International Proceedings in Informatics (LIPIcs), Vol. 194). Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 17:1–17:30. https://doi.org/10.4230/LIPIcs.ECOOP.2021.17
[9]
LustreV6 2020. Verimag Lustre V6. Retrieved Sep 13, 2022 from http://www-verimag.imag.fr/Lustre-V6.html
[10]
Alessandro Margara and Guido Salvaneschi. 2018. On the Semantics of Distributed Reactive Programming: The Cost of Consistency. IEEE Transactions on Software Engineering 44, 7 (2018), 689–711. https://doi.org/10.1109/TSE.2018.2833109
[11]
Ragnar Mogk, Joscha Drechsler, Guido Salvaneschi, and Mira Mezini. 2019. A Fault-Tolerant Programming Model for Distributed Interactive Applications. Proc. ACM Program. Lang. 3, OOPSLA, Article 144 (oct 2019), 29 pages. https://doi.org/10.1145/3360570
[12]
Kensuke Sawada and Takuo Watanabe. 2016. Emfrp: A Functional Reactive Programming Language for Small-Scale Embedded Systems. In MODULARITY Companion 2016: Companion Proceedings of the 15th International Conference on Modularity. ACM, 36–44. https://doi.org/10.1145/2892664.2892670
[13]
Marc Shapiro, Nuno Preguiça, Carlos Baquero, and Marek Zawirski. 2011. Conflict-Free Replicated Data Types. In Proceedings of the 13th International Conference on Stabilization, Safety, and Security of Distributed Systems (Grenoble, France) (SSS’11). Springer-Verlag, Berlin, Heidelberg, 386–400.
[14]
Kazuhiro Shibanai and Takuo Watanabe. 2018. Distributed Functional Reactive Programming on Actor-Based Runtime. In 8th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control (AGERE 2018). ACM, 13–22. https://doi.org/10.1145/3281366.3281370
[15]
Sam Van den Vonder, Thierry Renaux, Bjarno Oeyen, Joeri De Koster, and Wolfgang De Meuter. 2020. Tackling the Awkward Squad for Reactive Programming: The Actor-Reactor Model. In 34th European Conference on Object-Oriented Programming (ECOOP 2020)(Leibniz International Proceedings in Informatics (LIPIcs), Vol. 166). Schloss Dagstuhl–Leibniz-Zentrum für Informatik, 19:1–19:29. https://doi.org/10.4230/LIPIcs.ECOOP.2020.19
[16]
YungYu Zhuang. 2019. A lightweight push-pull mechanism for implicitly using signals in imperative programming. Journal of Computer Languages 54 (2019), 100903. https://doi.org/10.1016/j.cola.2019.100903

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
WSSE '23: Proceedings of the 2023 5th World Symposium on Software Engineering
September 2023
352 pages
ISBN:9798400708053
DOI:10.1145/3631991
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 the author(s) 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].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 December 2023

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. dataflow programming
  2. distributed systems
  3. functional reactive programming
  4. glitch avoidance

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Funding Sources

Conference

WSSE 2023

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 43
    Total Downloads
  • Downloads (Last 12 months)42
  • Downloads (Last 6 weeks)0
Reflects downloads up to 26 Jan 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media