{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,28]],"date-time":"2026-04-28T15:37:14Z","timestamp":1777390634846,"version":"3.51.4"},"reference-count":51,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2013,8,1]],"date-time":"2013-08-01T00:00:00Z","timestamp":1375315200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"MobiCrant project in the context of the InnovIris"},{"DOI":"10.13039\/501100003130","name":"Fonds Wetenschappelijk Onderzoek","doi-asserted-by":"publisher","id":[{"id":"10.13039\/501100003130","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Comput. Surv."],"published-print":{"date-parts":[[2013,8]]},"abstract":"<jats:p>Reactive programming has recently gained popularity as a paradigm that is well-suited for developing event-driven and interactive applications. It facilitates the development of such applications by providing abstractions to express time-varying values and automatically managing dependencies between such values. A number of approaches have been recently proposed embedded in various languages such as Haskell, Scheme, JavaScript, Java, .NET, etc. This survey describes and provides a taxonomy of existing reactive programming approaches along six axes: representation of time-varying values, evaluation model, lifting operations, multidirectionality, glitch avoidance, and support for distribution. From this taxonomy, we observe that there are still open challenges in the field of reactive programming. For instance, multidirectionality is supported only by a small number of languages, which do not automatically track dependencies between time-varying values. Similarly, glitch avoidance, which is subtle in reactive programs, cannot be ensured in distributed reactive programs using the current techniques.<\/jats:p>","DOI":"10.1145\/2501654.2501666","type":"journal-article","created":{"date-parts":[[2013,8,27]],"date-time":"2013-08-27T12:58:51Z","timestamp":1377608331000},"page":"1-34","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":181,"title":["A survey on reactive programming"],"prefix":"10.1145","volume":"45","author":[{"given":"Engineer","family":"Bainomugisha","sequence":"first","affiliation":[{"name":"Vrije Universiteit Brussel, Brussels, Belgium"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Andoni Lombide","family":"Carreton","sequence":"additional","affiliation":[{"name":"Vrije Universiteit Brussel, Brussels, Belgium"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Tom van","family":"Cutsem","sequence":"additional","affiliation":[{"name":"Vrije Universiteit Brussel, Brussels, Belgium"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Stijn","family":"Mostinckx","sequence":"additional","affiliation":[{"name":"Vrije Universiteit Brussel, Brussels, Belgium"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Wolfgang de","family":"Meuter","sequence":"additional","affiliation":[{"name":"Vrije Universiteit Brussel, Brussels, Belgium"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2013,8,30]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/207110.207134"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/293677.293679"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1109\/JPROC.2002.805826"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1016\/0167-6423(92)90005-V"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.v18:5"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.5555\/1894386.1894389"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/343477.343622"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1007\/11693024_20"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.5555\/645771.667929"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/SCCC.2007.4"},{"key":"e_1_2_1_12_1","unstructured":"Eby P. J. 2008. Trellis. http:\/\/pypi.python.org\/pypi\/Trellis.  Eby P. J. 2008. Trellis. http:\/\/pypi.python.org\/pypi\/Trellis."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1639950.1640058"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/258948.258973"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/192161.192276"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1596638.1596643"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/857076.857078"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/284563.284566"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1232420.1232424"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/5.97300"},{"key":"e_1_2_1_21_1","unstructured":"Hamilton K. and Dyer W. 2010. Reactive extension for .net. http:\/\/msdn.microsoft.com\/en-us\/devlabs\/ee794896.aspx.  Hamilton K. and Dyer W. 2010. Reactive extension for .net. http:\/\/msdn.microsoft.com\/en-us\/devlabs\/ee794896.aspx."},{"key":"e_1_2_1_22_1","volume-title":"Statecharts: The Statemate Approach","author":"Harel D.","year":"1998","unstructured":"Harel , D. and Politi , M . 1998 . Modeling Reactive Systems with Statecharts: The Statemate Approach 1 st Ed. McGraw-Hill , New York. Harel, D. and Politi, M. 1998. Modeling Reactive Systems with Statecharts: The Statemate Approach 1st Ed. McGraw-Hill, New York.","edition":"1"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1023\/B:WINE.0000044025.64654.65"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-44833-4_6"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0167-6423(99)00023-4"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1449913.1449927"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1013208.1013209"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01627421"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1109\/PROC.1987.13876"},{"key":"e_1_2_1_30_1","unstructured":"Maier I. Rompf T. and Odersky M. 2010. Deprecating the observer pattern. Tech. rep. http:\/\/lampwww.epfl.ch\/&sim;imaier\/pub\/DeprecatingObserversTR2010.pdf.  Maier I. Rompf T. and Odersky M. 2010. Deprecating the observer pattern. Tech. rep. http:\/\/lampwww.epfl.ch\/&sim;imaier\/pub\/DeprecatingObserversTR2010.pdf."},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1007\/11785477_15"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640091"},{"key":"e_1_2_1_33_1","volume-title":"LINQ: NET language-integrated query","author":"Microsoft C.","year":"2007","unstructured":"Microsoft C. 2007 . LINQ: NET language-integrated query . http:\/\/msdn.microsoft.com\/library\/bb308959.aspx. Microsoft C. 2007. LINQ: NET language-integrated query. http:\/\/msdn.microsoft.com\/library\/bb308959.aspx."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.5555\/1986262.1986274"},{"key":"e_1_2_1_35_1","unstructured":"Miller M. S. 2003. The reporter\/reactor pattern. http:\/\/www.erights.org\/javadoc\/org\/erights\/e\/elib\/slot\/EverReporter.html.  Miller M. S. 2003. The reporter\/reactor pattern. http:\/\/www.erights.org\/javadoc\/org\/erights\/e\/elib\/slot\/EverReporter.html."},{"key":"e_1_2_1_36_1","volume-title":"Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages (PADL'03)","author":"Nilsson H.","unstructured":"Nilsson , H. , Peterson , J. , and Hudak , P . 2003. Functional hybrid modeling . In Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages (PADL'03) . Springer, 376--390. Nilsson, H., Peterson, J., and Hudak, P. 2003. Functional hybrid modeling. In Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages (PADL'03). Springer, 376--390."},{"key":"e_1_2_1_37_1","unstructured":"Odersky M. Altherr P. Cremet V. Emir B. Maneth S. etal 2004. An overview of the scala programming language. Tech. rep. IC\/2004\/64 EPFL Lausanne Switzerland.  Odersky M. Altherr P. Cremet V. Emir B. Maneth S. et al. 2004. An overview of the scala programming language. Tech. rep. IC\/2004\/64 EPFL Lausanne Switzerland."},{"key":"e_1_2_1_38_1","unstructured":"Oracle. 1997. JavaBeans component model. http:\/\/www.oracle.com\/technetwork\/java\/javase\/tech\/index-jsp-138795.html.  Oracle. 1997. JavaBeans component model. http:\/\/www.oracle.com\/technetwork\/java\/javase\/tech\/index-jsp-138795.html."},{"key":"e_1_2_1_39_1","volume-title":"Proceedings of the 2nd Conference on Conference on Domain-Specific Languages (DSL'99)","volume":"2","author":"Peterson J.","unstructured":"Peterson , J. and Hager , G . 1999. Monadic robotics . In Proceedings of the 2nd Conference on Conference on Domain-Specific Languages (DSL'99) . Vol. 2 , USENIX Association, Berkeley, 8--8. Peterson, J. and Hager, G. 1999. Monadic robotics. In Proceedings of the 2nd Conference on Conference on Domain-Specific Languages (DSL'99). Vol. 2, USENIX Association, Berkeley, 8--8."},{"key":"e_1_2_1_40_1","volume-title":"Proceedings of the 3rd International Symposium on Practical Aspects of Declarative Languages (PADL'01)","author":"Peterson J.","unstructured":"Peterson , J. , Hudak , P. , Reid , A. , and Hager , G. D . 2001. Fvision: A declarative language for visual tracking . In Proceedings of the 3rd International Symposium on Practical Aspects of Declarative Languages (PADL'01) . Springer, 304--321. Peterson, J., Hudak, P., Reid, A., and Hager, G. D. 2001. Fvision: A declarative language for visual tracking. In Proceedings of the 3rd International Symposium on Practical Aspects of Declarative Languages (PADL'01). Springer, 304--321."},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.5555\/857172.857241"},{"key":"e_1_2_1_43_1","volume-title":"Proceedings of the International Lisp Conference (ILC'09)","author":"Radul A.","unstructured":"Radul , A. and Sussman , G. J . 2009. The (abridged) art of the propagator . In Proceedings of the International Lisp Conference (ILC'09) . Radul, A. and Sussman, G. J. 2009. The (abridged) art of the propagator. In Proceedings of the International Lisp Conference (ILC'09)."},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/507635.507652"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1016\/0004-3702(77)90029-7"},{"key":"e_1_2_1_48_1","volume-title":"The definition and implementation of a computer programming language based on constraints. Tech. rep","author":"Steele Jr., G. L.","unstructured":"Steele , Jr., G. L. 1980. The definition and implementation of a computer programming language based on constraints. Tech. rep ., Cambridge, MA, USA . http:\/\/dspace.mit.edu\/handle\/1721.1\/6933. Steele, Jr., G. L. 1980. The definition and implementation of a computer programming language based on constraints. Tech. rep., Cambridge, MA, USA. http:\/\/dspace.mit.edu\/handle\/1721.1\/6933."},{"key":"e_1_2_1_49_1","unstructured":"The Mathworks. 1994. Simulink - Simulation and model-based design. http:\/\/www.mathworks.nl\/products\/simulink\/index.html.  The Mathworks. 1994. Simulink - Simulation and model-based design. http:\/\/www.mathworks.nl\/products\/simulink\/index.html."},{"key":"e_1_2_1_50_1","unstructured":"Tilton K. 2008. The cells manifesto. http:\/\/smuglispweeny.blogspot.com\/2008\/02\/cells-manifesto.html.  Tilton K. 2008. The cells manifesto. http:\/\/smuglispweeny.blogspot.com\/2008\/02\/cells-manifesto.html."},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/349299.349331"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/507546.507654"},{"key":"e_1_2_1_53_1","volume-title":"Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages (PADL'02)","author":"Wan Z.","unstructured":"Wan , Z. , Taha , W. , and Hudak , P . 2002. Event-driven frp . In Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages (PADL'02) . Springer, 155--172. Wan, Z., Taha, W., and Hudak, P. 2002. Event-driven frp. In Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages (PADL'02). Springer, 155--172."},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1109\/85.329757"},{"key":"e_1_2_1_55_1","volume-title":"Proceedings of the 6th National Conference on Artificial Intelligence. AAAI Press, 59--64","author":"Zabih R.","unstructured":"Zabih , R. , Mcallester , D. , and Chapman , D . 1987. Non-deterministic lisp with dependency-directed backtracking . In Proceedings of the 6th National Conference on Artificial Intelligence. AAAI Press, 59--64 . Zabih, R., Mcallester, D., and Chapman, D. 1987. Non-deterministic lisp with dependency-directed backtracking. In Proceedings of the 6th National Conference on Artificial Intelligence. AAAI Press, 59--64."}],"container-title":["ACM Computing Surveys"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2501654.2501666","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2501654.2501666","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T07:28:48Z","timestamp":1750231728000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2501654.2501666"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2013,8]]},"references-count":51,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2013,8]]}},"alternative-id":["10.1145\/2501654.2501666"],"URL":"https:\/\/doi.org\/10.1145\/2501654.2501666","relation":{},"ISSN":["0360-0300","1557-7341"],"issn-type":[{"value":"0360-0300","type":"print"},{"value":"1557-7341","type":"electronic"}],"subject":[],"published":{"date-parts":[[2013,8]]},"assertion":[{"value":"2010-05-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2012-08-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2013-08-30","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}