{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,2,21]],"date-time":"2025-02-21T07:50:31Z","timestamp":1740124231864,"version":"3.37.3"},"reference-count":49,"publisher":"Springer Science and Business Media LLC","issue":"3","license":[{"start":{"date-parts":[[2017,6,22]],"date-time":"2017-06-22T00:00:00Z","timestamp":1498089600000},"content-version":"unspecified","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"funder":[{"DOI":"10.13039\/501100000781","name":"European Research Council","doi-asserted-by":"publisher","award":["321217"],"award-info":[{"award-number":["321217"]}],"id":[{"id":"10.13039\/501100000781","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Software Qual J"],"published-print":{"date-parts":[[2018,9]]},"DOI":"10.1007\/s11219-017-9366-6","type":"journal-article","created":{"date-parts":[[2017,6,21]],"date-time":"2017-06-21T23:28:40Z","timestamp":1498087720000},"page":"1147-1183","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["Cooperative decoupled processes"],"prefix":"10.1007","volume":"26","author":[{"given":"Andi","family":"Bejleri","sequence":"first","affiliation":[]},{"given":"Mira","family":"Mezini","sequence":"additional","affiliation":[]},{"given":"Patrick","family":"Eugster","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2194-8848","authenticated-orcid":false,"given":"Elton","family":"Domnori","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2017,6,22]]},"reference":[{"key":"9366_CR1","unstructured":"Adya, A., Howell, J., Theimer, M., Bolosky, W.J., & Douceur, J.R. (2002). Cooperative task management without manual stack management. In USENIX (pp. 289\u2013302)."},{"key":"9366_CR2","doi-asserted-by":"crossref","unstructured":"Aldrich, J., Sunshine, J., Saini, D., & Sparks, Z. (2009). Typestate-oriented programming. In OOPSLA \u201909 (pp. 1015\u20131022). ACM.","DOI":"10.1145\/1639950.1640073"},{"key":"9366_CR3","unstructured":"Association NFP (2015). Codes and standards. http:\/\/www.nfpa.org\/ ."},{"key":"9366_CR4","unstructured":"Bejleri, A., Aldrich, J., & Bierhoff, K. (2006). Ego: controlling the power of simplicity. In FOOL\/WOOD 06."},{"key":"9366_CR5","doi-asserted-by":"crossref","unstructured":"Bejleri, A., Mezini, M., & Eugster, P. (2016). Cooperative decoupled processes: the e-calculus and linearity. In MODULARITY.","DOI":"10.1145\/2889443.2889449"},{"issue":"5","key":"9366_CR6","doi-asserted-by":"crossref","first-page":"769","DOI":"10.1145\/1018203.1018205","volume":"26","author":"N Benton","year":"2004","unstructured":"Benton, N., Cardelli, L., & Fournet, C. (2004). Modern concurrency abstractions for c#. ACM Transactions on Programming Languages and Systems, 26(5), 769\u2013804.","journal-title":"ACM Transactions on Programming Languages and Systems"},{"issue":"1","key":"9366_CR7","doi-asserted-by":"crossref","first-page":"217","DOI":"10.1016\/0304-3975(92)90185-I","volume":"96","author":"G Berry","year":"1992","unstructured":"Berry, G., & Boudol, G. (1992). The chemical abstract machine. Theoretical Computer Science, 96(1), 217\u2013248.","journal-title":"Theoretical Computer Science"},{"key":"9366_CR8","doi-asserted-by":"crossref","unstructured":"Bidinger, P., & Stefani, J.B. (2003). The kell calculus: operational semantics and type system. In FMOODS (pp. 109\u2013123): Springer.","DOI":"10.1007\/978-3-540-39958-2_8"},{"key":"9366_CR9","doi-asserted-by":"crossref","unstructured":"Bolosky, W.J., & et al (2000). Feasibility of a serverless distributed file system deployed on an existing set of desktop pcs. In SIGMETRICS \u201900 (pp. 34\u201343).","DOI":"10.1145\/339331.339345"},{"key":"9366_CR10","doi-asserted-by":"crossref","unstructured":"Chin, B., & Millstein, T. (2006). Responders: language support for interactive applications. In ECOOP.","DOI":"10.1007\/11785477_17"},{"key":"9366_CR11","doi-asserted-by":"crossref","unstructured":"Courtenage, S. (2002). Specifying and detecting composite events in content-based publish\/subscribe systems. In ICDCS Workshops (pp. 602\u2013610).","DOI":"10.1109\/ICDCSW.2002.1030836"},{"key":"9366_CR12","doi-asserted-by":"crossref","unstructured":"Crafa, S., & Padovani, L. (2015). The chemical approach to typestate-oriented programming. In OOPSLA.","DOI":"10.1145\/2814270.2814287"},{"key":"9366_CR13","unstructured":"Cunningham, R., & Kohler, E. (2005). Making events less slippery with eel. In HOTOS."},{"key":"9366_CR14","doi-asserted-by":"crossref","unstructured":"Deni\u00e9lou, P.M., & Yoshida, N. (2011). Dynamic multirole session types. In POPL \u201911 (pp. 435\u2013446).","DOI":"10.1145\/1926385.1926435"},{"key":"9366_CR15","doi-asserted-by":"crossref","unstructured":"Desai, A., Gupta, V., Jackson, E., Qadeer, S., Rajamani, S., & Zufferey, D. (2013). P: safe asynchronous event-driven programming. SIGPLAN Notices, 48(6).","DOI":"10.1145\/2499370.2462184"},{"issue":"2","key":"9366_CR16","doi-asserted-by":"crossref","first-page":"114","DOI":"10.1145\/857076.857078","volume":"35","author":"PT Eugster","year":"2003","unstructured":"Eugster, P.T., Felber, P.A., Guerraoui, R., & Kermarrec, A.M. (2003). The many faces of publish\/subscribe. ACM Computing Surveys, 35(2), 114\u2013131.","journal-title":"ACM Computing Surveys"},{"key":"9366_CR17","doi-asserted-by":"crossref","unstructured":"Fiege, L., Mezini, M., M\u00fchl, G., & Buchmann, A.P. (2002). Engineering event-based systems with scopes. In ECOOP \u201902 (pp. 309\u2013333).","DOI":"10.1007\/3-540-47993-7_14"},{"key":"9366_CR18","doi-asserted-by":"crossref","unstructured":"Floyd, S., & et al. (1997). A reliable multicast framework for light-weight sessions and application level framing. IEEE\/ACM Transactions Network, 5(6).","DOI":"10.1109\/90.650139"},{"key":"9366_CR19","doi-asserted-by":"crossref","unstructured":"Foltzer, A., Kulkarni, A., Swords, R., Sasidharan, S., Jiang, E., & Newton, R. (2012). A meta-scheduler for the par-monad: Composable scheduling for the heterogeneous cloud. SIGPLAN Notices, 47(9).","DOI":"10.1145\/2398856.2364562"},{"key":"9366_CR20","doi-asserted-by":"crossref","unstructured":"Fournet, C., & Gonthier, G. (1996). The reflexive cham and the join-calculus. In POPL (pp. 372\u2013385).","DOI":"10.1145\/237721.237805"},{"key":"9366_CR21","doi-asserted-by":"crossref","unstructured":"Fournet, C., Gonthier, G., L\u00e9vy, J.J., Maranget, L., & R\u00e9my, D. (1996). A calculus of mobile agents. In CONCUR (pp. 406\u2013421).","DOI":"10.1007\/3-540-61604-7_67"},{"key":"9366_CR22","unstructured":"Fournet, C., Laneve, C., & Maranget, L. (1997). Implicit typing \u2018a la ml for the join-calculus. In Concur (pp. 196\u2013212): Springer."},{"key":"9366_CR23","doi-asserted-by":"crossref","unstructured":"Franklin, M., & Zdonik, S. (1997). A framework for scalable dissemination-based systems. SIGPLAN Notices, 32(10).","DOI":"10.1145\/263700.263725"},{"key":"9366_CR24","doi-asserted-by":"crossref","unstructured":"Friedman, D.P., Haynes, C.T., & Kohlbecker, E.E. (1984). Programming with continuations. In PTPE (pp. 263\u2013274).","DOI":"10.1007\/978-3-642-46490-4_23"},{"key":"9366_CR25","doi-asserted-by":"crossref","unstructured":"Garcia, J., Popescu, D., Safi, G., Halfond, W., & Medvidovic, N. (2013). Identifying message flow in distributed event-based systems. In ESEC\/FSE (pp. 367\u2013377).","DOI":"10.1145\/2491411.2491462"},{"key":"9366_CR26","doi-asserted-by":"crossref","unstructured":"Gasiunas, V., Satabin, L., Mezini, M., Nez, A.N., & Noy\u00e9, J. (2011). EScala: modular event-driven object interactions in scala. In AOSD (pp. 227\u2013240).","DOI":"10.1145\/1960275.1960303"},{"key":"9366_CR27","doi-asserted-by":"crossref","unstructured":"Gelernter, D. (1985). Generative communication in linda. ACM Transactions on Programming Languages and Systems, 7(1).","DOI":"10.1145\/2363.2433"},{"issue":"3","key":"9366_CR28","doi-asserted-by":"crossref","first-page":"145","DOI":"10.1016\/S1571-0661(04)80420-1","volume":"66","author":"F Germain","year":"2002","unstructured":"Germain, F., Lacoste, M., & Stefani, J.B. (2002). An abstract machine for a higher-order distributed process calculus. Electronic Notes in Theoretical Computer Science, 66(3), 145\u2013169.","journal-title":"Electronic Notes in Theoretical Computer Science"},{"key":"9366_CR29","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1016\/0304-3975(87)90045-4","volume":"50","author":"JY Girard","year":"1987","unstructured":"Girard, J.Y. (1987). Linear logic. Theoretical Computer Science, 50, 1\u2013102.","journal-title":"Theoretical Computer Science"},{"key":"9366_CR30","doi-asserted-by":"crossref","unstructured":"Gustafsson, A. (2005). Threads without the pain. Queue, 3(9).","DOI":"10.1145\/1105664.1105678"},{"key":"9366_CR31","doi-asserted-by":"crossref","unstructured":"Haller, P., & Cutsem, T.V. (2008). Implementing joins using extensible pattern matching. In COORDINATION.","DOI":"10.1007\/978-3-540-68265-3_9"},{"key":"9366_CR32","doi-asserted-by":"crossref","unstructured":"Haller, P., & Odersky, M. (2006). Event-based programming without inversion of control. In JMLC.","DOI":"10.1007\/11860990_2"},{"key":"9366_CR33","doi-asserted-by":"crossref","unstructured":"Haller, P., & Odersky, M. (2009). Scala actors: unifying thread-based and event-based programming. Theoretical Computer Science, 410(2\u20133).","DOI":"10.1016\/j.tcs.2008.09.019"},{"key":"9366_CR34","unstructured":"Ham, J.M.V., Salvaneschi, G., Mezini, M., & Noy\u00e9, J. (2014). Jescala: modular coordination with declarative events and joins. In MODULARITY (pp. 205\u2013216)."},{"key":"9366_CR35","doi-asserted-by":"crossref","unstructured":"Hinze, A., & Voisard, A. (2002). A parameterized algebra for event notification services. In TIME (pp. 61\u201363).","DOI":"10.1109\/TIME.2002.1027476"},{"key":"9366_CR36","doi-asserted-by":"crossref","unstructured":"Hu, R., Kouzapas, D., Pernet, O., Yoshida, N., & Honda, K. (2010). Type-safe eventful sessions in java. In ECOOP.","DOI":"10.1007\/978-3-642-14107-2_16"},{"issue":"5","key":"9366_CR37","doi-asserted-by":"crossref","first-page":"914","DOI":"10.1145\/330249.330251","volume":"21","author":"N Kobayashi","year":"1999","unstructured":"Kobayashi, N., Pierce, B.C., & Turner, D.N. (1999). Linearity and the pi-calculus. ACM Transactions on Programming Languages and Systems, 21(5), 914\u2013947.","journal-title":"ACM Transactions on Programming Languages and Systems"},{"issue":"7","key":"9366_CR38","doi-asserted-by":"crossref","first-page":"558","DOI":"10.1145\/359545.359563","volume":"21","author":"L Lamport","year":"1978","unstructured":"Lamport, L. (1978). Time, clocks, and the ordering of events in a distributed system. Communication of the ACM, 21(7), 558\u2013565.","journal-title":"Communication of the ACM"},{"key":"9366_CR39","doi-asserted-by":"crossref","unstructured":"Li, P., & Zdancewic, S. (2007). Combining events and threads for scalable network services implementation and evaluation of monadic application-level concurrency primitives. In PLDI.","DOI":"10.1145\/1250734.1250756"},{"key":"9366_CR40","unstructured":"Ousterhout, J.K. (1996). Why threads are a bad idea (for most purposes), Usenix (Invited talk)."},{"key":"9366_CR41","doi-asserted-by":"crossref","unstructured":"Parnas, D.L. (1972). On the criteria to be used in decomposing systems into modules. Communications of the ACM. In 15(12).","DOI":"10.1145\/361598.361623"},{"key":"9366_CR42","unstructured":"Pnueli, A. (1977). The temporal logic of programs, FOCS (pp. 46\u201357)."},{"key":"9366_CR43","doi-asserted-by":"crossref","unstructured":"S\u00e1nchez, C., Sankaranarayanan, S., Sipma, H., Zhang, T., Dill, D.L., & Manna, Z. (2003). Event correlation: language and semantics. In EMSOFT (pp. 323\u2013339).","DOI":"10.1007\/978-3-540-45212-6_21"},{"key":"9366_CR44","doi-asserted-by":"crossref","unstructured":"Schmitt, A., & Stefani, J.B. (2003). The m-calculus: a higher-order distributed process calculus, POPL (pp. 50\u201361).","DOI":"10.1145\/604131.604136"},{"key":"9366_CR45","doi-asserted-by":"crossref","unstructured":"Shih, E., Bahl, P., & Sinclair, M.J. (2002). Wake on wireless: an event driven energy saving strategy for battery operated devices. In MobiCom \u201902 (pp. 160\u2013171).","DOI":"10.1145\/570645.570666"},{"issue":"1","key":"9366_CR46","doi-asserted-by":"crossref","first-page":"157","DOI":"10.1109\/TSE.1986.6312929","volume":"12","author":"RE Strom","year":"1986","unstructured":"Strom, R.E., & Yemini, S. (1986). Typestate: a programming language concept for enhancing software reliability. IEEE Transactions on Software Engineering, 12(1), 157\u2013171.","journal-title":"IEEE Transactions on Software Engineering"},{"key":"9366_CR47","doi-asserted-by":"crossref","unstructured":"Sunshine, J., Naden, K., Stork, S., Aldrich, J., & Tanter, \u00c9. (2011). First-class state change in plaid. In OOPSLA (pp. 713\u2013732).","DOI":"10.1145\/2048066.2048122"},{"key":"9366_CR48","unstructured":"von Behren, J.R., Condit, J., & Brewer, E.A. (2003). Why events are a bad idea (for high-concurrency servers). In HotOS (pp. 19\u201324)."},{"key":"9366_CR49","doi-asserted-by":"crossref","unstructured":"Welsh, M., Culler, D.E., & Brewer, E.A. (2001). Seda: An architecture for well-conditioned, scalable internet services. In SOSP (pp. 230\u2013243).","DOI":"10.1145\/502034.502057"}],"container-title":["Software Quality Journal"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/article\/10.1007\/s11219-017-9366-6\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s11219-017-9366-6.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s11219-017-9366-6.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,9,26]],"date-time":"2019-09-26T09:58:48Z","timestamp":1569491928000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/s11219-017-9366-6"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,6,22]]},"references-count":49,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2018,9]]}},"alternative-id":["9366"],"URL":"https:\/\/doi.org\/10.1007\/s11219-017-9366-6","relation":{},"ISSN":["0963-9314","1573-1367"],"issn-type":[{"type":"print","value":"0963-9314"},{"type":"electronic","value":"1573-1367"}],"subject":[],"published":{"date-parts":[[2017,6,22]]}}}