{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T23:05:54Z","timestamp":1779836754451,"version":"3.53.1"},"reference-count":28,"publisher":"Cambridge University Press (CUP)","license":[{"start":{"date-parts":[[2019,3,22]],"date-time":"2019-03-22T00:00:00Z","timestamp":1553212800000},"content-version":"unspecified","delay-in-days":80,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[2019]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>With multi-tier programming languages, programmers can specify the locations of code to run in order to reduce development efforts for the web-based client\u2013server model where programmers write client and server programs separately and test the multiple programs together. The RPC calculus, one of the foundations of those languages by Cooper and Wadler, has the feature of symmetric communication in programmer\u2019s writing arbitrarily deep nested client\u2013server interactions. The feature of the calculus is fully implemented by asymmetric communication in trampolined style suitable for the client\u2013server model. However, the existing research only considers a stateless server strategy in which all server states are encoded for transmission to the client so that server states do not need to be stored in the server. It cannot always correctly handle all stateful operations involving disks or databases. To resolve this problem, we first propose new stateful calculi that fully support both symmetric communication from the programmer\u2019s viewpoint and asymmetric communication in its implementation using trampolined style. All the existing calculi either provide only the feature of asymmetric communication or propose only symmetric implementation suitable for the peer-to-peer model, rather than the client\u2013server model. Second, the method used to design our stateful server strategy is based on a new locative type system which paves the way for a theory of RPC calculi for the client\u2013server model. Besides proposing the new stateful calculi, this theory can improve the existing stateless server strategy to construct new state-encoding calculi that eliminate runtime checks on remote procedure calls present in the existing strategy, and it enables us to design a new mixed strategy that combines the benefits of both kinds of strategies. As far as we know, there are no typed multi-tier calculi that offer programmers the feature of symmetric communication with the implementation of asymmetric communication under the three strategies together.<\/jats:p>","DOI":"10.1017\/s0956796819000029","type":"journal-article","created":{"date-parts":[[2019,3,22]],"date-time":"2019-03-22T02:56:19Z","timestamp":1553223379000},"source":"Crossref","is-referenced-by-count":7,"title":["A theory of RPC calculi for client\u2013server model"],"prefix":"10.1017","volume":"29","author":[{"given":"KWANGHOON","family":"CHOI","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"BYEONG-MO","family":"CHANG","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"56","published-online":{"date-parts":[[2019,3,22]]},"reference":[{"key":"S0956796819000029_ref26","doi-asserted-by":"publisher","DOI":"10.1007\/s10990-010-9061-9"},{"key":"S0956796819000029_ref24","doi-asserted-by":"publisher","DOI":"10.1145\/2240236.2240253"},{"key":"S0956796819000029_ref22","doi-asserted-by":"publisher","DOI":"10.1145\/2661136.2661140"},{"key":"S0956796819000029_ref16","unstructured":"Murphy VII, T. (2008) Modal Types for Mobile Code. Ph.D. thesis, Carnegie Mellon University, Pittsburgh, PA, USA."},{"key":"S0956796819000029_ref14","doi-asserted-by":"publisher","DOI":"10.1145\/1596550.1596594"},{"key":"S0956796819000029_ref13","doi-asserted-by":"publisher","DOI":"10.1023\/B:AUSE.0000038936.09009.69"},{"key":"S0956796819000029_ref12","doi-asserted-by":"publisher","DOI":"10.1145\/178243.178246"},{"key":"S0956796819000029_ref11","doi-asserted-by":"publisher","DOI":"10.1007\/s10990-007-9008-y"},{"key":"S0956796819000029_ref10","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2001.989807"},{"key":"S0956796819000029_ref9","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-49099-X_6"},{"key":"S0956796819000029_ref8","doi-asserted-by":"publisher","DOI":"10.1145\/317636.317779"},{"key":"S0956796819000029_ref7","doi-asserted-by":"publisher","DOI":"10.1145\/155090.155113"},{"key":"S0956796819000029_ref5","doi-asserted-by":"publisher","DOI":"10.1145\/1599410.1599439"},{"key":"S0956796819000029_ref18","doi-asserted-by":"publisher","DOI":"10.1145\/1040305.1040324"},{"key":"S0956796819000029_ref1","doi-asserted-by":"publisher","DOI":"10.1145\/1159876.1159889"},{"key":"S0956796819000029_ref28","doi-asserted-by":"publisher","DOI":"10.1145\/3158152"},{"key":"S0956796819000029_ref21","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2014.48"},{"key":"S0956796819000029_ref2","doi-asserted-by":"publisher","DOI":"10.1145\/2220365.2220369"},{"key":"S0956796819000029_ref27","doi-asserted-by":"publisher","DOI":"10.1145\/1176617.1176756"},{"key":"S0956796819000029_ref19","doi-asserted-by":"publisher","DOI":"10.1007\/s10990-004-4866-z"},{"key":"S0956796819000029_ref6","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-74792-5_12"},{"key":"S0956796819000029_ref3","doi-asserted-by":"publisher","DOI":"10.1145\/2676726.2677004"},{"key":"S0956796819000029_ref17","doi-asserted-by":"crossref","unstructured":"Murphy VII, T. , Cray, K. , Harper, R. & Pfenning, F. (2004) A symmetric modal lambda calculus for distributed computing. In LICS\u201904: Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science. Washington, DC, USA: IEEE Computer Society, pp. 286\u2013295.","DOI":"10.1109\/LICS.2004.1319623"},{"key":"S0956796819000029_ref23","doi-asserted-by":"publisher","DOI":"10.1145\/800194.805852"},{"key":"S0956796819000029_ref4","doi-asserted-by":"publisher","DOI":"10.1145\/366663.366704"},{"key":"S0956796819000029_ref15","doi-asserted-by":"publisher","DOI":"10.1145\/1869459.1869506"},{"key":"S0956796819000029_ref20","doi-asserted-by":"crossref","unstructured":"Radanne, G. (2017) Tierless Web Programming in ML. Ph.D. thesis, University Paris Diderot.","DOI":"10.1145\/3184558.3185953"},{"key":"S0956796819000029_ref25","doi-asserted-by":"publisher","DOI":"10.1145\/2951913.2951916"}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796819000029","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T22:36:42Z","timestamp":1779835002000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796819000029\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019]]},"references-count":28,"alternative-id":["S0956796819000029"],"URL":"https:\/\/doi.org\/10.1017\/s0956796819000029","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019]]},"article-number":"e5"}}