{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,6]],"date-time":"2026-10-06T03:21:43Z","timestamp":1791256903262,"version":"4.1.0"},"reference-count":0,"publisher":"Cambridge University Press (CUP)","issue":"1","license":[{"start":{"date-parts":[[1999,1,1]],"date-time":"1999-01-01T00:00:00Z","timestamp":915148800000},"content-version":"unspecified","delay-in-days":0,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[1999,1]]},"abstract":"<jats:p>\n                    The\n                    <jats:bold>future<\/jats:bold>\n                    annotation of MultiLisp provides a simple method for taming the implicit \nparallelism of functional programs. Prior research on\n                    <jats:bold>future<\/jats:bold>\n                    has concentrated on implementation \nand design issues, and has largely ignored the development of a semantic characterization of\n                    <jats:bold>future<\/jats:bold>\n                    . This paper considers an idealized functional language with\n                    <jats:bold>futures<\/jats:bold>\n                    and presents a series \nof operational semantics with increasing degrees of intensionality. The first semantics defines\n                    <jats:bold>future<\/jats:bold>\n                    to be a semantically transparent annotation. The second semantics interprets a\n                    <jats:bold>future<\/jats:bold>\n                    expression as a potentially parallel task. The third semantics explicates the coordination of \nparallel tasks by introducing\n                    <jats:italic>placeholder objects<\/jats:italic>\n                    and\n                    <jats:italic>touch<\/jats:italic>\n                    operations.\n                  <\/jats:p>\n                  <jats:p>We use the last semantics to derive a program analysis algorithm and an optimization \nalgorithm that removes provably redundant touch operations. Experiments with the Gambit \ncompiler indicate that this optimization significantly reduces the overhead imposed by touch \noperations.<\/jats:p>","DOI":"10.1017\/s0956796899003329","type":"journal-article","created":{"date-parts":[[2002,7,27]],"date-time":"2002-07-27T09:26:15Z","timestamp":1027761975000},"page":"1-31","source":"Crossref","is-referenced-by-count":36,"title":["The semantics of future and an application"],"prefix":"10.1017","volume":"9","author":[{"given":"C.","family":"FLANAGAN","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"M.","family":"FELLEISEN","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"56","published-online":{"date-parts":[[1999,1,1]]},"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796899003329","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T22:35:30Z","timestamp":1779834930000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796899003329\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1999,1]]},"references-count":0,"journal-issue":{"issue":"1","published-print":{"date-parts":[[1999,1]]}},"alternative-id":["S0956796899003329"],"URL":"https:\/\/doi.org\/10.1017\/s0956796899003329","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[1999,1]]}}}