{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T23:05:58Z","timestamp":1779836758162,"version":"3.53.1"},"reference-count":53,"publisher":"Cambridge University Press (CUP)","license":[{"start":{"date-parts":[[2020,8,24]],"date-time":"2020-08-24T00:00:00Z","timestamp":1598227200000},"content-version":"unspecified","delay-in-days":236,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[2020]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>Actors collaborate via message exchanges to reach a common goal. Experience has shown, however, that pure message-based communication is limiting and forces developers to use design patterns. The recently introduced dataspace actor model borrows ideas from the tuple space realm. It offers a tightly controlled, shared storage facility for groups of actors. In this model, actors assert facts that they wish to share and interests in such assertions. The dataspace notifies interested parties of changes to the set of assertions that they are interested in. Although it is straightforward to add the dataspace model to untyped languages, adding a typed interface is both necessary and challenging. Without restrictions on exchanged data, a faulty actor may propagate erroneous data through a malformed assertion, causing an otherwise well-behaved actor to crash\u2014violating the key principle of failure isolation. A properly designed type system can prevent this scenario and rule out other kinds of uncooperative actors. This paper presents the first structural type system for the dataspace model of actors; it does not address the question of behavioral types for assertion-oriented protocols.<\/jats:p>","DOI":"10.1017\/s0956796820000246","type":"journal-article","created":{"date-parts":[[2020,8,24]],"date-time":"2020-08-24T06:40:31Z","timestamp":1598251231000},"source":"Crossref","is-referenced-by-count":1,"title":["Typed dataspace actors"],"prefix":"10.1017","volume":"30","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-7092-8769","authenticated-orcid":false,"given":"SAM","family":"CALDWELL","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"TONY","family":"GARNOCK-JONES","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"MATTHIAS","family":"FELLEISEN","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"56","published-online":{"date-parts":[[2020,8,24]]},"reference":[{"key":"S0956796820000246_ref4","volume-title":"Programming Erlang","author":"Armstrong","year":"1994"},{"key":"S0956796820000246_ref28","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-46669-8_6"},{"key":"S0956796820000246_ref27","doi-asserted-by":"crossref","unstructured":"Hewitt, C. , Bishop, P. B. , Greif, I. , Smith, B. C. , Matson, T. & Steiger, R. (1973) Actor induction and meta-evaluation. In POPL.","DOI":"10.1145\/512927.512942"},{"key":"S0956796820000246_ref3","doi-asserted-by":"crossref","DOI":"10.7551\/mitpress\/1086.001.0001","volume-title":"Actors: A Model of Concurrent Computation in Distributed Systems","author":"Agha","year":"1986"},{"key":"S0956796820000246_ref29","doi-asserted-by":"crossref","unstructured":"Honda, K. , Vasconcelos, V. T. & Kubo, M. (1998) Language primitives and type discipline for structured communication-based programming. In ESOP, pp. 122\u2013138.","DOI":"10.1007\/BFb0053567"},{"key":"S0956796820000246_ref8","doi-asserted-by":"crossref","unstructured":"Chang, S. , Knauth, A. & Greenman, B. (2017) Type systems as macros. In POPL, pp. 694\u2013705.","DOI":"10.1145\/3093333.3009886"},{"key":"S0956796820000246_ref16","doi-asserted-by":"crossref","first-page":"114","DOI":"10.1145\/857076.857078","article-title":"The many faces of publish\/subscribe","volume":"35","author":"Eugster","year":"2003","journal-title":"ACM Comput. Surv."},{"key":"S0956796820000246_ref31","doi-asserted-by":"crossref","unstructured":"Jeuring, J. (1995) Polytypic pattern matching. In FPCA\u201995, pp. 238\u2013248.","DOI":"10.1145\/224164.224212"},{"key":"S0956796820000246_ref47","doi-asserted-by":"crossref","unstructured":"Tobin-Hochstadt, S. & Felleisen, M. (2008) The design and implementation of Typed Scheme. In POPL, pp. 395\u2013406.","DOI":"10.1145\/1328897.1328486"},{"key":"S0956796820000246_ref6","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-00590-9_21"},{"key":"S0956796820000246_ref50","author":"van der Goot","year":"2000"},{"key":"S0956796820000246_ref53","doi-asserted-by":"publisher","DOI":"10.1147\/sj.373.0454"},{"key":"S0956796820000246_ref11","unstructured":"Crafa, S. (2012) Behavioural Types for Actor Systems. Technical report."},{"key":"S0956796820000246_ref39","doi-asserted-by":"publisher","DOI":"10.1145\/1066677.1066775"},{"key":"S0956796820000246_ref14","unstructured":"ECMA. (2015) ECMA-262: ECMAScript 2015 Language Specification, 6th ed. ECMA International."},{"key":"S0956796820000246_ref20","author":"Garnock-Jones","year":"2017"},{"key":"S0956796820000246_ref30","doi-asserted-by":"crossref","unstructured":"Honda, K. , Yoshida, N. & Carbone, M. (2008) Multiparty asynchronous session types. In POPL\u201908, pp. 273\u2013284.","DOI":"10.1145\/1328897.1328472"},{"key":"S0956796820000246_ref42","doi-asserted-by":"publisher","DOI":"10.1007\/s00779-010-0355-z"},{"key":"S0956796820000246_ref48","doi-asserted-by":"crossref","unstructured":"Toninho, B. , Caires, L. & Pfenning, F. (2011) Dependent session types via intuitionistic linear type theory. In PPDP.","DOI":"10.1145\/2003476.2003499"},{"key":"S0956796820000246_ref35","doi-asserted-by":"crossref","unstructured":"Mostinckx, S. , Scholliers, C. , Philips, E. , Herzeel, C. & De Meuter, W. (2007) Fact spaces: Coordination in the face of disconnection. In Proceedings of COORDINATION 2007, pp. 268\u2013285.","DOI":"10.1007\/978-3-540-72794-1_15"},{"key":"S0956796820000246_ref46","doi-asserted-by":"crossref","unstructured":"Tasharofi, S. , Dinges, P. & Johnson, R. E. (2013) Why do scala developers mix the actor model with other concurrency models? In ECOOP.","DOI":"10.1007\/978-3-642-39038-8_13"},{"key":"S0956796820000246_ref52","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1994.1093"},{"key":"S0956796820000246_ref44","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1986.6312929"},{"key":"S0956796820000246_ref1","unstructured":"Gigaspaces (2017). Gigaspaces. Accessed October 19, 2017. Available at: https:\/\/www.gigaspaces.com."},{"key":"S0956796820000246_ref49","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":"S0956796820000246_ref37","doi-asserted-by":"crossref","first-page":"279","DOI":"10.1145\/1151695.1151698","article-title":"Lime: A coordination model and middleware supporting mobility of hosts and agents","volume":"15","author":"Murphy","year":"2006","journal-title":"ACM Trans. Soft. Eng. Method"},{"key":"S0956796820000246_ref32","doi-asserted-by":"crossref","unstructured":"Leivant, D. (2001) Termination proofs and complexity certification. In Theoretical Aspects of Computer Software, pp. 183\u2013200.","DOI":"10.1007\/3-540-45500-0_9"},{"key":"S0956796820000246_ref41","doi-asserted-by":"publisher","DOI":"10.1145\/268946.268967"},{"key":"S0956796820000246_ref43","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-70592-5_6"},{"key":"S0956796820000246_ref51","doi-asserted-by":"crossref","unstructured":"Vieira, H. T. , Caires, L. & Seco, J. C. (2008) The conversation calculus: A model of service-oriented computation. In ESOP, pp. 269\u2013283.","DOI":"10.1007\/978-3-540-78739-6_21"},{"key":"S0956796820000246_ref45","doi-asserted-by":"crossref","unstructured":"Summers, A. J. & M\u00fcller, P. (2016) Actor services: Modular verification of message passing programs. In ESOP.","DOI":"10.1007\/978-3-662-49498-1_27"},{"key":"S0956796820000246_ref33","doi-asserted-by":"publisher","DOI":"10.1007\/11580850_12"},{"key":"S0956796820000246_ref34","volume-title":"Communicating and Mobile Systems: The PI Calculus","author":"Milner","year":"1999"},{"key":"S0956796820000246_ref25","doi-asserted-by":"publisher","DOI":"10.1145\/2983990.2984042"},{"key":"S0956796820000246_ref2","unstructured":"Javaspaces\u2122 service specification (2017). Javaspaces\u2122 service specification, version 2.3. Accessed January 24, 2017. Available at: https:\/\/river.apache.org\/release-doc\/current\/specs\/html\/js-spec.html."},{"key":"S0956796820000246_ref15","volume-title":"Blackboard Systems","author":"Englemore","year":"1988"},{"key":"S0956796820000246_ref22","doi-asserted-by":"crossref","unstructured":"Garnock-Jones, T. , Tobin-Hochstadt, S. & Felleisen, M. (2014) The network as a language construct. In ESOP, pp. 473\u2013492.","DOI":"10.1007\/978-3-642-54833-8_25"},{"key":"S0956796820000246_ref10","volume-title":"Programming in Prolog","author":"Clocksin","year":"1981"},{"key":"S0956796820000246_ref36","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-21464-6_7"},{"key":"S0956796820000246_ref18","doi-asserted-by":"crossref","first-page":"181","DOI":"10.1017\/S0956796812000093","article-title":"Macros that work together: Compile-time bindings, partial expansion, and definition contexts","volume":"22","author":"Flatt","year":"2012","journal-title":"J. Funct. Program."},{"key":"S0956796820000246_ref21","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-49498-1_13"},{"key":"S0956796820000246_ref26","doi-asserted-by":"crossref","unstructured":"He, J. , Wadler, P. & Trinder, P. (2014) Typecasting actors: From Akka to TAkka. In Proceedings of the Fifth Annual Scala Workshop, pp. 23\u201333.","DOI":"10.1145\/2637647.2637651"},{"key":"S0956796820000246_ref5","unstructured":"Armstrong, J. (2003) Making Reliable Distributed Systems in the Presence of Software Errors. PhD dissertation, Stockholm: Royal Institute of Technology."},{"key":"S0956796820000246_ref40","unstructured":"Pierce, B. C. (1991) Programming with Intersection Types, Union Types, and Polymorphism. Technical report CMU-CS-91-106, Carnegie Mellon University."},{"key":"S0956796820000246_ref7","doi-asserted-by":"crossref","first-page":"633","DOI":"10.1016\/0167-8191(94)90032-9","article-title":"The Linda alternative to message-passing systems","volume":"20","author":"Carriero","year":"1994","journal-title":"Parallel Comput."},{"key":"S0956796820000246_ref9","doi-asserted-by":"crossref","unstructured":"Clebsch, S. , Drossopoulou, S. , Blessing, S. & McNeil, A. (2015) Deny capabilities for safe, fast actors. In International Workshop on Programming Based on Actors, Agents, and Decentralized Control. AGERE! 2015.","DOI":"10.1145\/2824815.2824816"},{"key":"S0956796820000246_ref13","unstructured":"Dotty Compiler Team. (2019) Union types - more details. Accessed December 13, 2019. Available at: https:\/\/dotty.epfl.ch\/docs\/reference\/new-types\/union-types-spec.html."},{"key":"S0956796820000246_ref38","volume-title":"Human Problem Solving","author":"Newell","year":"1972"},{"key":"S0956796820000246_ref19","unstructured":"Flatt, M. & PLT. (2010) Reference: Racket. Technical report PLT-TR-2010-1. PLT Inc. http:\/\/racket-lang.org\/tr1\/."},{"key":"S0956796820000246_ref17","volume-title":"Semantics Engineering with PLT Redex","author":"Felleisen","year":"2009"},{"key":"S0956796820000246_ref24","doi-asserted-by":"publisher","DOI":"10.1016\/S0049-237X(08)70843-7"},{"key":"S0956796820000246_ref12","unstructured":"de\u2019Liguoro, U. & Padovani, L. (2018) Mailbox types for unordered interactions. In ECOOP."},{"key":"S0956796820000246_ref23","doi-asserted-by":"crossref","unstructured":"Gelernter, D. (1985) Generative communication in Linda. ACM Trans. Program. Lang. Syst.","DOI":"10.1145\/2363.2433"}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796820000246","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T22:36:52Z","timestamp":1779835012000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796820000246\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020]]},"references-count":53,"alternative-id":["S0956796820000246"],"URL":"https:\/\/doi.org\/10.1017\/s0956796820000246","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020]]},"article-number":"e27"}}