{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T23:05:20Z","timestamp":1779836720156,"version":"3.53.1"},"reference-count":0,"publisher":"Cambridge University Press (CUP)","issue":"1","license":[{"start":{"date-parts":[[1998,1,1]],"date-time":"1998-01-01T00:00:00Z","timestamp":883612800000},"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":[[1998,1]]},"abstract":"<jats:p>\n                    The process of writing large parallel programs is complicated by\n the \nneed to specify both the parallel behaviour of the program and the algorithm\n \nthat is to be used to compute its \nresult. This paper introduces\n                    <jats:italic>evaluation strategies<\/jats:italic>\n                    : lazy higher-order\n \nfunctions that control the \nparallel evaluation of non-strict functional languages. Using evaluation\n \nstrategies, it is possible \nto achieve a clean separation between algorithmic and behavioural code.\n The result is enhanced \nclarity and shorter parallel programs. Evaluation strategies are a very\n general concept: this \npaper shows how they can be used to model a wide range of commonly used\n programming \nparadigms, including divide-and-conquer parallelism, pipeline \nparallelism, producer\/consumer \nparallelism, and data-oriented parallelism. Because they are based on unrestricted\n higher-order \nfunctions, they can also capture irregular parallel structures. Evaluation\n strategies are not \njust of theoretical interest: they have evolved out of our experience in\n parallelising several \nlarge-scale parallel applications, where they have proved invaluable in\n helping to manage the \ncomplexities of parallel behaviour. Some of these applications are described\n in detail here. \nThe largest application we have studied to date, Lolita, is a 40,000 line\n natural language \nengineering system. Initial results show that for these programs we can\n achieve acceptable \nparallel performance, for relatively little programming effort.\n                  <\/jats:p>","DOI":"10.1017\/s0956796897002967","type":"journal-article","created":{"date-parts":[[2002,7,27]],"date-time":"2002-07-27T09:26:15Z","timestamp":1027761975000},"page":"23-60","source":"Crossref","is-referenced-by-count":166,"title":["Algorithm + strategy = parallelism"],"prefix":"10.1017","volume":"8","author":[{"given":"P. W.","family":"TRINDER","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"K.","family":"HAMMOND","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"H.-W.","family":"LOIDL","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"S. L.","family":"PEYTON JONES","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"56","published-online":{"date-parts":[[1998,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\/S0956796897002967","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T22:35:28Z","timestamp":1779834928000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796897002967\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1998,1]]},"references-count":0,"journal-issue":{"issue":"1","published-print":{"date-parts":[[1998,1]]}},"alternative-id":["S0956796897002967"],"URL":"https:\/\/doi.org\/10.1017\/s0956796897002967","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[1998,1]]}}}