{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,9,23]],"date-time":"2023-09-23T23:28:05Z","timestamp":1695511685990},"reference-count":18,"publisher":"Wiley","issue":"17","license":[{"start":{"date-parts":[[2015,5,20]],"date-time":"2015-05-20T00:00:00Z","timestamp":1432080000000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Concurrency and Computation"],"published-print":{"date-parts":[[2015,12,10]]},"abstract":"Summary<\/jats:title>Many message passing languages and packages include some form of synchronous invocation. In a synchronous invocation, the invoker waits for the invocation's servicer to pass back results. A synchronous invocation can be viewed as a pair of asynchronous invocations: one\u2014initiating the computation\u2014with parameter values from the invoker to the servicer and the other\u2014once the requested computation has completed\u2014with the \u2018go\u2010ahead\u2019 and return value from the servicer to the invoker. The target of the latter invocation is known as the reply operation<\/jats:italic>, and a reference to it is known as a reply capability<\/jats:italic>. This paper addresses the issues of making such reply capabilities directly accessible to user code. It presents the design and prototype implementation of a new version of the JR concurrent programming language, called xJR, in which the reply capability can be explicit. This paper gives xJR examples, including realistic ones, to highlight the additional flexibility the new features offer (such as a non\u2010lexical reply). These additional features do not impact the run\u2010time performance of existing JR features and can even lead to more efficient code in some programming scenarios. Our experience with the prototype implementation indicates that an actual implementation would be fruitful and would preserve the prototype's performance advantages. Copyright \u00a9 2015\u2009John Wiley & Sons, Ltd.<\/jats:p>","DOI":"10.1002\/cpe.3531","type":"journal-article","created":{"date-parts":[[2015,5,20]],"date-time":"2015-05-20T08:19:10Z","timestamp":1432109950000},"page":"5134-5155","source":"Crossref","is-referenced-by-count":1,"title":["User accessible reply capabilities in invoking and servicing operations"],"prefix":"10.1002","volume":"27","author":[{"given":"Ronald A.","family":"Olsson","sequence":"first","affiliation":[{"name":"Department of Computer Science University of California Davis 95616 CA USA"}]},{"given":"Aaron W.","family":"Keen","sequence":"additional","affiliation":[{"name":"Computer Science Department California Polytechnic State University San Luis Obispo 93407 CA USA"}]}],"member":"311","published-online":{"date-parts":[[2015,5,20]]},"reference":[{"key":"e_1_2_10_2_1","volume-title":"Concurrent Programming: Principles and Practice","author":"Andrews GR","year":"1991"},{"key":"e_1_2_10_3_1","volume-title":"The Concurrent C Programming Language","author":"Gehani N","year":"1989"},{"key":"e_1_2_10_4_1","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.3448"},{"key":"e_1_2_10_5_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380110504"},{"key":"e_1_2_10_6_1","unstructured":"LiskovB HerlihyM GilbertL.Limitations of remote procedure call and static process structure for distributed computing. Proceedings of the 13th ACM Symposium on Principles of Programming Languages St. Petersburg Florida 1986;150\u2013159."},{"key":"e_1_2_10_7_1","volume-title":"Foundations of Multithreaded, Parallel, and Distributed Programming","author":"Andrews GR","year":"2000"},{"key":"e_1_2_10_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/982158.982162"},{"key":"e_1_2_10_9_1","volume-title":"The JR Programming Language: Concurrent Programming in an Extended Java","author":"Olsson RA","year":"2004"},{"key":"e_1_2_10_10_1","unstructured":"JR language implementation. (Available from:http:\/\/www.cs.ucdavis.edu\/~olsson\/research\/jr\/) [last Accessed on 05 April 2015]."},{"key":"e_1_2_10_11_1","doi-asserted-by":"crossref","unstructured":"AndrewsGR OlssonRA CoffinM ElshoffI NilsenK PurdinT TownsendG.An overview of the SR language and implementation1988;10(1):51\u201386.","DOI":"10.1145\/42192.42324"},{"key":"e_1_2_10_12_1","volume-title":"The SR Programming Language: Concurrency in Practice","author":"Andrews GR","year":"1993"},{"key":"e_1_2_10_13_1","doi-asserted-by":"publisher","DOI":"10.1007\/11549468_77"},{"key":"e_1_2_10_14_1","unstructured":"Class exchanger. (Available from:http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/concurrent\/Exchanger.html) [last Accessed on 05 April 2015]."},{"key":"e_1_2_10_15_1","doi-asserted-by":"crossref","unstructured":"OlssonRA WilliamsonT.RJ: a Java package providing JR\u2010like concurrent programming. Accepted on 20 April 2015.","DOI":"10.1002\/spe.2330"},{"key":"e_1_2_10_16_1","unstructured":"RJ package implementation. (Available from:http:\/\/www.cs.ucdavis.edu\/~olsson\/research\/rj\/) [last Accessed on 05 April 2015]."},{"key":"e_1_2_10_17_1","doi-asserted-by":"crossref","unstructured":"WilliamsonT.PySy: a Python package for enhanced concurrent programming Master's Thesis University of California \u2010 Davis California 96516 USA. (Available from:http:\/\/www.cs.ucdavis.edu\/~olsson\/students\/WilliamsonTodd.pdf) [last Accessed on 05 April 2015] 2012.","DOI":"10.1002\/cpe.2981"},{"key":"e_1_2_10_18_1","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.2981"},{"key":"e_1_2_10_19_1","unstructured":"The SR programming language website. (Available from:http:\/\/www.cs.arizona.edu\/sr\/) [last Accessed on 05 April 2015]."}],"container-title":["Concurrency and Computation: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fcpe.3531","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/cpe.3531","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,9,2]],"date-time":"2023-09-02T10:41:45Z","timestamp":1693651305000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/cpe.3531"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2015,5,20]]},"references-count":18,"journal-issue":{"issue":"17","published-print":{"date-parts":[[2015,12,10]]}},"alternative-id":["10.1002\/cpe.3531"],"URL":"https:\/\/doi.org\/10.1002\/cpe.3531","archive":["Portico"],"relation":{},"ISSN":["1532-0626","1532-0634"],"issn-type":[{"value":"1532-0626","type":"print"},{"value":"1532-0634","type":"electronic"}],"subject":[],"published":{"date-parts":[[2015,5,20]]}}}