{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,4]],"date-time":"2026-06-04T08:58:46Z","timestamp":1780563526958,"version":"3.54.1"},"reference-count":74,"publisher":"Cambridge University Press (CUP)","license":[{"start":{"date-parts":[[2024,12,3]],"date-time":"2024-12-03T00:00:00Z","timestamp":1733184000000},"content-version":"unspecified","delay-in-days":337,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["cambridge.org"],"crossmark-restriction":true},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[2024]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>Actor languages realize concurrency via message passing, which most of the time is easy to use. Empirical code inspection provides evidence, however, that on occasion, programmers wish to have an actor share some of its state with others. The dataspace model adds a tightly controlled state-exchange mechanism, dubbed dataspace, to the actor model for just this purpose. Experience with dataspaces suggests that this form of sharing calls for linguistic constructs that allow programmers to state temporal aspects of actor conversations. In response, this paper presents the facet notation: its theory, its type system, its behavioral type system, and some first experiences with an implementation.<\/jats:p>","DOI":"10.1017\/s0956796824000091","type":"journal-article","created":{"date-parts":[[2024,12,3]],"date-time":"2024-12-03T00:49:02Z","timestamp":1733186942000},"update-policy":"https:\/\/doi.org\/10.1017\/policypage","source":"Crossref","is-referenced-by-count":2,"title":["Programming and reasoning about actors that share state"],"prefix":"10.1017","volume":"34","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-7092-8769","authenticated-orcid":false,"given":"SAM","family":"CALDWELL","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0000-9516-0848","authenticated-orcid":false,"given":"TONY","family":"GARNOCK-JONES","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6678-1004","authenticated-orcid":false,"given":"MATTHIAS","family":"FELLEISEN","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"56","published-online":{"date-parts":[[2024,12,3]]},"reference":[{"key":"S0956796824000091_ref13","doi-asserted-by":"publisher","DOI":"10.1145\/503272.503278"},{"key":"S0956796824000091_ref50","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-72794-1_15"},{"key":"S0956796824000091_ref54","doi-asserted-by":"publisher","DOI":"10.1109\/SFCS.1977.32"},{"key":"S0956796824000091_ref11","doi-asserted-by":"publisher","DOI":"10.1016\/S0304-3975(99)00231-5"},{"key":"S0956796824000091_ref5","doi-asserted-by":"publisher","DOI":"10.1016\/0167-6423(92)90005-V"},{"key":"S0956796824000091_ref12","doi-asserted-by":"publisher","DOI":"10.1016\/0167-8191(94)90032-9"},{"key":"S0956796824000091_ref28","doi-asserted-by":"publisher","DOI":"10.1145\/73560.73576"},{"key":"S0956796824000091_ref42","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0053567"},{"key":"S0956796824000091_ref49","unstructured":"Mostinckx, S. , Lombide Carreton, A. & De Meuter, W. (2008) Reactive context-aware programming. In Workshop on Context-aware Adaptation Mechanisms for Pervasive and Ubiquitous Services (CAMPUS), vol. 10, Electronic Communications of the EASST, DisCoTec."},{"key":"S0956796824000091_ref25","unstructured":"de\u2019Liguoro, U. & Padovani, L. (2018) Mailbox types for unordered interactions. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP)."},{"key":"S0956796824000091_ref38","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-66845-1_13"},{"key":"S0956796824000091_ref29","doi-asserted-by":"publisher","DOI":"10.1145\/1291151.1291178"},{"key":"S0956796824000091_ref2","unstructured":"Project, Akka . (2022) Akka actors. https:\/\/akka.io\/. Accessed: 2022-06-24."},{"key":"S0956796824000091_ref31","unstructured":"Fournet, C. & Gonthier, G. (2000) The join calculus: A language for distributed mobile programming. Appl. Semant. Summer School."},{"key":"S0956796824000091_ref48","doi-asserted-by":"publisher","DOI":"10.1007\/11580850_12"},{"key":"S0956796824000091_ref14","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009886"},{"key":"S0956796824000091_ref62","unstructured":"Scholliers, C. , Gonz\u00e1lez Boix, E. & De Meuter, W. (2009) TOTAM: Scoped tuples for the Ambient. In Workshop on Context-aware Adaptation Mechanisms for Pervasive and Ubiquitous Services (CAMPUS)."},{"key":"S0956796824000091_ref68","first-page":"112","article-title":"AmbientTalk: Programming responsive mobile peer-to-peer applications with actors","volume":"40","author":"Van Cutsem","year":"2014","journal-title":"Comput. Lang. Syst. Struct."},{"key":"S0956796824000091_ref45","doi-asserted-by":"publisher","DOI":"10.1145\/1141277.1141704"},{"key":"S0956796824000091_ref4","article-title":"Advanced join patterns for the actor model based on CEP techniques","volume":"5","author":"Avila","year":"2020","journal-title":"Art Sci. Eng. Program."},{"key":"S0956796824000091_ref63","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-16949-6_6"},{"key":"S0956796824000091_ref18","doi-asserted-by":"publisher","DOI":"10.1145\/3064849"},{"key":"S0956796824000091_ref7","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-00590-9_21"},{"key":"S0956796824000091_ref41","doi-asserted-by":"publisher","DOI":"10.1109\/32.588521"},{"key":"S0956796824000091_ref23","doi-asserted-by":"publisher","DOI":"10.1609\/aaai.v30i1.10117"},{"key":"S0956796824000091_ref36","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-54833-8_25"},{"key":"S0956796824000091_ref52","doi-asserted-by":"publisher","DOI":"10.1145\/1151695.1151698"},{"key":"S0956796824000091_ref56","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-55099-7_7"},{"key":"S0956796824000091_ref40","doi-asserted-by":"publisher","DOI":"10.1145\/363235.363259"},{"key":"S0956796824000091_ref64","first-page":"385","article-title":"Modeling and verification of reactive systems using Rebeca","volume":"63","author":"Sirjani","year":"2004","journal-title":"Fundam. Inform."},{"key":"S0956796824000091_ref20","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796812000275"},{"key":"S0956796824000091_ref72","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1994.1093"},{"key":"S0956796824000091_ref44","doi-asserted-by":"publisher","DOI":"10.1145\/360204.360215"},{"key":"S0956796824000091_ref67","doi-asserted-by":"publisher","DOI":"10.1145\/2003476.2003499"},{"key":"S0956796824000091_ref73","doi-asserted-by":"publisher","DOI":"10.1016\/S0304-3975(00)00317-0"},{"key":"S0956796824000091_ref61","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-14107-2_13"},{"key":"S0956796824000091_ref35","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-49498-1_13"},{"key":"S0956796824000091_ref65","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1986.6312929"},{"key":"S0956796824000091_ref22","doi-asserted-by":"publisher","DOI":"10.1016\/S0004-3702(00)00031-X"},{"key":"S0956796824000091_ref58","doi-asserted-by":"publisher","DOI":"10.1145\/3290343"},{"key":"S0956796824000091_ref32","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-44450-5_32"},{"key":"S0956796824000091_ref46","doi-asserted-by":"publisher","DOI":"10.1145\/73560.73564"},{"key":"S0956796824000091_ref55","doi-asserted-by":"publisher","DOI":"10.1016\/j.cosrev.2010.06.002"},{"key":"S0956796824000091_ref37","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2013.07.031"},{"key":"S0956796824000091_ref60","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-68863-1_13"},{"key":"S0956796824000091_ref19","doi-asserted-by":"publisher","DOI":"10.1145\/1863543.1863577"},{"key":"S0956796824000091_ref24","doi-asserted-by":"publisher","DOI":"10.1145\/3001886.3001890"},{"key":"S0956796824000091_ref30","doi-asserted-by":"publisher","DOI":"10.1090\/psapm\/019\/0235771"},{"key":"S0956796824000091_ref33","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"Gamma","year":"1994"},{"key":"S0956796824000091_ref51","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-21464-6_7"},{"key":"S0956796824000091_ref9","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796820000246"},{"key":"S0956796824000091_ref15","volume-title":"Programming in Prolog","author":"Clocksin","year":"1981"},{"key":"S0956796824000091_ref1","doi-asserted-by":"publisher","DOI":"10.7551\/mitpress\/1086.001.0001"},{"key":"S0956796824000091_ref47","volume-title":"The Temporal Logic of Reactive and Concurrent Systems: Specification","author":"Manna","year":"1991"},{"key":"S0956796824000091_ref53","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-43376-8_9"},{"key":"S0956796824000091_ref27","doi-asserted-by":"publisher","DOI":"10.1145\/857076.857078"},{"key":"S0956796824000091_ref8","unstructured":"Caldwell, S. (2023) Reasoning About Actors that Share State. PhD dissertation. Northeastern University."},{"key":"S0956796824000091_ref17","unstructured":"Crafa, S. (2012) Behavioural Types for Actor Systems. Technical report. https:\/\/arxiv.org\/abs\/1206.1687."},{"key":"S0956796824000091_ref59","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3322484"},{"key":"S0956796824000091_ref39","unstructured":"Hewitt, C. , Bishop, P. & Steiger, R. (1973) A universal modular actor formalism for artificial intelligence. In International Joint Conference on Artificial Intelligence."},{"key":"S0956796824000091_ref34","unstructured":"Garnock-Jones, T. (2017) Conversational Concurrency. PhD dissertation. Northeastern University."},{"key":"S0956796824000091_ref57","unstructured":"Sanderson, S. (2010) Introducing Knockout, a UI library for JavaScript. http:\/\/blog.stevensanderson.com\/2010\/07\/05\/introducing-knockout-a-ui-library-for-javascript\/. Accessed: 2022-07-25."},{"key":"S0956796824000091_ref74","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-24644-4_5"},{"key":"S0956796824000091_ref6","doi-asserted-by":"crossref","unstructured":"Boer, F. d. , Serbanescu, V. , H\u00e4hnle, R. , Henrio, L. , Rochas, J. , Din, C. C. , Johnsen, E. B. , Sirjani, M. , Khamespanah, E. , Fernandez-Reyes, K. & Yang, A. M. (2017) A survey of active object languages. ACM Comput. Surv. 50(5), 1\u201339, Article 76.","DOI":"10.1145\/3122848"},{"key":"S0956796824000091_ref21","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-71316-6_22"},{"key":"S0956796824000091_ref3","unstructured":"Armstrong, J. (2003) Making Reliable Distributed Systems in the Presence of Software Errors. PhD dissertation. Royal Institute of Technology, Stockholm."},{"key":"S0956796824000091_ref43","doi-asserted-by":"publisher","DOI":"10.1145\/1328438.1328472"},{"key":"S0956796824000091_ref70","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-45319-9_1"},{"key":"S0956796824000091_ref69","doi-asserted-by":"publisher","DOI":"10.1109\/SCCC.2007.12"},{"key":"S0956796824000091_ref26","doi-asserted-by":"publisher","DOI":"10.1145\/2048066.2048100"},{"key":"S0956796824000091_ref16","doi-asserted-by":"publisher","DOI":"10.1007\/11693024_20"},{"key":"S0956796824000091_ref71","unstructured":"Vieira, H. T. , Caires, L. & Seco, J. C. (2008) The conversation calculus: A model of service-oriented computation. In Proceedings of the European Symposium on Programming (ESOP)."},{"key":"S0956796824000091_ref66","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-39038-8_13"},{"key":"S0956796824000091_ref10","doi-asserted-by":"publisher","DOI":"10.1145\/2429069.2429101"}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796824000091","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T22:34:56Z","timestamp":1779834896000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796824000091\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024]]},"references-count":74,"alternative-id":["S0956796824000091"],"URL":"https:\/\/doi.org\/10.1017\/s0956796824000091","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024]]},"assertion":[{"value":"\u00a9 The Author(s), 2024. Published by Cambridge University Press","name":"copyright","label":"Copyright","group":{"name":"copyright_and_licensing","label":"Copyright and Licensing"}},{"value":"This is an Open Access article, distributed under the terms of the Creative Commons Attribution licence (https:\/\/creativecommons.org\/licenses\/by\/4.0\/), which permits unrestricted re-use, distribution and reproduction, provided the original article is properly cited.","name":"license","label":"License","group":{"name":"copyright_and_licensing","label":"Copyright and Licensing"}},{"value":"This content has been made available to all.","name":"free","label":"Free to read"}],"article-number":"e12"}}