{"id":"https://openalex.org/W1990195720","doi":"https://doi.org/10.1017/s0956796897002967","title":"Algorithm + strategy = parallelism","display_name":"Algorithm + strategy = parallelism","publication_year":1998,"publication_date":"1998-01-01","ids":{"openalex":"https://openalex.org/W1990195720","doi":"https://doi.org/10.1017/s0956796897002967","mag":"1990195720"},"language":"en","primary_location":{"id":"doi:10.1017/s0956796897002967","is_oa":false,"landing_page_url":"https://doi.org/10.1017/s0956796897002967","pdf_url":null,"source":{"id":"https://openalex.org/S12266929","display_name":"Journal of Functional Programming","issn_l":"0956-7968","issn":["0956-7968","1469-7653"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311721","host_organization_name":"Cambridge University Press","host_organization_lineage":["https://openalex.org/P4310311721","https://openalex.org/P4310311702"],"host_organization_lineage_names":["Cambridge University Press","University of Cambridge"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5047010988","display_name":"Phil Trinder","orcid":"https://orcid.org/0000-0003-0190-7010"},"institutions":[{"id":"https://openalex.org/I7882870","display_name":"University of Glasgow","ror":"https://ror.org/00vtgdb53","country_code":"GB","type":"education","lineage":["https://openalex.org/I7882870"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"P. W. TRINDER","raw_affiliation_strings":["Department of Computing Science, University of Glasgow, Glasgow, UK","Department of Computing Science University of Glasgow, Glasgow, UK"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Department of Computing Science, University of Glasgow, Glasgow, UK","institution_ids":["https://openalex.org/I7882870"]},{"raw_affiliation_string":"Department of Computing Science University of Glasgow, Glasgow, UK","institution_ids":["https://openalex.org/I7882870"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5055787720","display_name":"Kevin Hammond","orcid":"https://orcid.org/0000-0002-4326-4562"},"institutions":[{"id":"https://openalex.org/I16835326","display_name":"University of St Andrews","ror":"https://ror.org/02wn5qz54","country_code":"GB","type":"education","lineage":["https://openalex.org/I16835326"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"K. HAMMOND","raw_affiliation_strings":["Division of Computing Science, University of St Andrews, St Andrews, UK","Division of Computing Science, University of St  Andrews,  St Andrews, UK"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Division of Computing Science, University of St Andrews, St Andrews, UK","institution_ids":["https://openalex.org/I16835326"]},{"raw_affiliation_string":"Division of Computing Science, University of St  Andrews,  St Andrews, UK","institution_ids":["https://openalex.org/I16835326"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5112873225","display_name":"Hans Loidl","orcid":null},"institutions":[{"id":"https://openalex.org/I7882870","display_name":"University of Glasgow","ror":"https://ror.org/00vtgdb53","country_code":"GB","type":"education","lineage":["https://openalex.org/I7882870"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"H.-W. LOIDL","raw_affiliation_strings":["Department of Computing Science, University of Glasgow, Glasgow, UK","Department of Computing Science University of Glasgow, Glasgow, UK"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Department of Computing Science, University of Glasgow, Glasgow, UK","institution_ids":["https://openalex.org/I7882870"]},{"raw_affiliation_string":"Department of Computing Science University of Glasgow, Glasgow, UK","institution_ids":["https://openalex.org/I7882870"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5072362603","display_name":"Simon Jones","orcid":"https://orcid.org/0000-0003-4111-0591"},"institutions":[{"id":"https://openalex.org/I7882870","display_name":"University of Glasgow","ror":"https://ror.org/00vtgdb53","country_code":"GB","type":"education","lineage":["https://openalex.org/I7882870"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"S. L. PEYTON JONES","raw_affiliation_strings":["Department of Computing Science, University of Glasgow, Glasgow, UK","Department of Computing Science University of Glasgow, Glasgow, UK"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Department of Computing Science, University of Glasgow, Glasgow, UK","institution_ids":["https://openalex.org/I7882870"]},{"raw_affiliation_string":"Department of Computing Science University of Glasgow, Glasgow, UK","institution_ids":["https://openalex.org/I7882870"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":16.6959,"has_fulltext":false,"cited_by_count":246,"citation_normalized_percentile":{"value":0.993778,"is_in_top_1_percent":true,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":94,"max":100},"biblio":{"volume":"8","issue":"1","first_page":"23","last_page":"60"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11269","display_name":"Algorithms and Data Compression","score":0.9980000257492065,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9952999949455261,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.930121660232544},{"id":"https://openalex.org/keywords/parallelism","display_name":"Parallelism (grammar)","score":0.7699462175369263},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.5911256670951843},{"id":"https://openalex.org/keywords/implicit-parallelism","display_name":"Implicit parallelism","score":0.5901512503623962},{"id":"https://openalex.org/keywords/task-parallelism","display_name":"Task parallelism","score":0.5825717449188232},{"id":"https://openalex.org/keywords/data-parallelism","display_name":"Data parallelism","score":0.5675632953643799},{"id":"https://openalex.org/keywords/parallel-programming-model","display_name":"Parallel programming model","score":0.5417540669441223},{"id":"https://openalex.org/keywords/pipeline","display_name":"Pipeline (software)","score":0.5101909637451172},{"id":"https://openalex.org/keywords/process","display_name":"Process (computing)","score":0.505912721157074},{"id":"https://openalex.org/keywords/clarity","display_name":"CLARITY","score":0.4792992174625397},{"id":"https://openalex.org/keywords/instruction-level-parallelism","display_name":"Instruction-level parallelism","score":0.462808758020401},{"id":"https://openalex.org/keywords/range","display_name":"Range (aeronautics)","score":0.4618624150753021},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4324420690536499},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.4214792847633362},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.3852129578590393},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.3581024408340454}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.930121660232544},{"id":"https://openalex.org/C2781172179","wikidata":"https://www.wikidata.org/wiki/Q853109","display_name":"Parallelism (grammar)","level":2,"score":0.7699462175369263},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.5911256670951843},{"id":"https://openalex.org/C3543717","wikidata":"https://www.wikidata.org/wiki/Q6007302","display_name":"Implicit parallelism","level":4,"score":0.5901512503623962},{"id":"https://openalex.org/C42992933","wikidata":"https://www.wikidata.org/wiki/Q691169","display_name":"Task parallelism","level":3,"score":0.5825717449188232},{"id":"https://openalex.org/C61483411","wikidata":"https://www.wikidata.org/wiki/Q3124522","display_name":"Data parallelism","level":3,"score":0.5675632953643799},{"id":"https://openalex.org/C137364921","wikidata":"https://www.wikidata.org/wiki/Q27929394","display_name":"Parallel programming model","level":3,"score":0.5417540669441223},{"id":"https://openalex.org/C43521106","wikidata":"https://www.wikidata.org/wiki/Q2165493","display_name":"Pipeline (software)","level":2,"score":0.5101909637451172},{"id":"https://openalex.org/C98045186","wikidata":"https://www.wikidata.org/wiki/Q205663","display_name":"Process (computing)","level":2,"score":0.505912721157074},{"id":"https://openalex.org/C2777146004","wikidata":"https://www.wikidata.org/wiki/Q14949826","display_name":"CLARITY","level":2,"score":0.4792992174625397},{"id":"https://openalex.org/C140763907","wikidata":"https://www.wikidata.org/wiki/Q2714055","display_name":"Instruction-level parallelism","level":3,"score":0.462808758020401},{"id":"https://openalex.org/C204323151","wikidata":"https://www.wikidata.org/wiki/Q905424","display_name":"Range (aeronautics)","level":2,"score":0.4618624150753021},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4324420690536499},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.4214792847633362},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.3852129578590393},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.3581024408340454},{"id":"https://openalex.org/C185592680","wikidata":"https://www.wikidata.org/wiki/Q2329","display_name":"Chemistry","level":0,"score":0.0},{"id":"https://openalex.org/C192562407","wikidata":"https://www.wikidata.org/wiki/Q228736","display_name":"Materials science","level":0,"score":0.0},{"id":"https://openalex.org/C55493867","wikidata":"https://www.wikidata.org/wiki/Q7094","display_name":"Biochemistry","level":1,"score":0.0},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C159985019","wikidata":"https://www.wikidata.org/wiki/Q181790","display_name":"Composite material","level":1,"score":0.0}],"mesh":[],"locations_count":4,"locations":[{"id":"doi:10.1017/s0956796897002967","is_oa":false,"landing_page_url":"https://doi.org/10.1017/s0956796897002967","pdf_url":null,"source":{"id":"https://openalex.org/S12266929","display_name":"Journal of Functional Programming","issn_l":"0956-7968","issn":["0956-7968","1469-7653"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311721","host_organization_name":"Cambridge University Press","host_organization_lineage":["https://openalex.org/P4310311721","https://openalex.org/P4310311702"],"host_organization_lineage_names":["Cambridge University Press","University of Cambridge"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.44.733","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.44.733","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cee.hw.ac.uk/~dsg/gph/papers/abstracts/../ps/strategies.ps.gz","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.51.1628","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.51.1628","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://research.microsoft.com/~simonpj/Papers/strategies.ps.gz","raw_type":"text"},{"id":"pmh:oai:oro.open.ac.uk:91788","is_oa":false,"landing_page_url":"https://oro.open.ac.uk/91788/","pdf_url":null,"source":{"id":"https://openalex.org/S4306401187","display_name":"Open Research Online (The Open University)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I204136569","host_organization_name":"The Open University","host_organization_lineage":["https://openalex.org/I204136569"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"PeerReviewed"}],"best_oa_location":null,"sustainable_development_goals":[{"score":0.5899999737739563,"display_name":"Quality Education","id":"https://metadata.un.org/sdg/4"}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":39,"referenced_works":["https://openalex.org/W156690058","https://openalex.org/W1531780705","https://openalex.org/W1533064098","https://openalex.org/W1533855950","https://openalex.org/W1541832368","https://openalex.org/W1551170326","https://openalex.org/W1559686260","https://openalex.org/W1603965263","https://openalex.org/W1607447456","https://openalex.org/W1944009913","https://openalex.org/W1975166067","https://openalex.org/W1981994545","https://openalex.org/W1983587116","https://openalex.org/W1983587324","https://openalex.org/W1983939376","https://openalex.org/W1986804682","https://openalex.org/W1997621883","https://openalex.org/W2004628971","https://openalex.org/W2006090396","https://openalex.org/W2011726331","https://openalex.org/W2026194104","https://openalex.org/W2029643639","https://openalex.org/W2034896142","https://openalex.org/W2038458240","https://openalex.org/W2042566745","https://openalex.org/W2051292397","https://openalex.org/W2053993447","https://openalex.org/W2075728976","https://openalex.org/W2082643016","https://openalex.org/W2099459818","https://openalex.org/W2099649164","https://openalex.org/W2103103193","https://openalex.org/W2123678589","https://openalex.org/W2126834315","https://openalex.org/W2132854590","https://openalex.org/W2144430894","https://openalex.org/W2149663533","https://openalex.org/W2154554979","https://openalex.org/W2436525433"],"related_works":["https://openalex.org/W2526302199","https://openalex.org/W2003935582","https://openalex.org/W4240606930","https://openalex.org/W2950520577","https://openalex.org/W2105992728","https://openalex.org/W74409296","https://openalex.org/W2494130044","https://openalex.org/W305742777","https://openalex.org/W2468095077","https://openalex.org/W1483753031"],"abstract_inverted_index":{"The":[0,67,170],"process":[1],"of":[2,18,47,96,131,138,158,162],"writing":[3],"large":[4],"parallel":[5,16,45,74,124,145,159,198],"programs":[6,193],"is":[7,25,55,69,179],"complicated":[8],"by":[9],"the":[10,15,19,22,44,156],"need":[11],"to":[12,26,29,57,91,154,176],"specify":[13],"both":[14],"behaviour":[17],"program":[20],"and":[21,64,72,108],"algorithm":[23],"that":[24,42,190],"be":[27,89],"used":[28,90,98],"compute":[30],"its":[31],"result.":[32],"This":[33],"paper":[34,84],"introduces":[35],"evaluation":[36,46,52],"strategies":[37,77,127],":":[38],"lazy":[39],"higher-order":[40,117],"functions":[41],"control":[43],"non-strict":[48],"functional":[49],"languages.":[50],"Using":[51],"strategies,":[53],"it":[54],"possible":[56],"achieve":[58,196],"a":[59,79,93,180],"clean":[60],"separation":[61],"between":[62],"algorithmic":[63],"behavioural":[65],"code.":[66],"result":[68],"enhanced":[70],"clarity":[71],"shorter":[73],"programs.":[75],"Evaluation":[76,126],"are":[78,113,128,165],"very":[80],"general":[81],"concept:":[82],"this":[83],"shows":[85],"how":[86],"they":[87,112,119,134,148],"can":[88,120,195],"model":[92],"wide":[94],"range":[95],"commonly":[97],"programming":[99,203],"paradigms,":[100],"including":[101],"divide-and-conquer":[102],"parallelism,":[103,105,107],"pipeline":[104],"producer/consumer":[106],"data-oriented":[109],"parallelism.":[110],"Because":[111],"based":[114],"on":[115],"unrestricted":[116],"functions,":[118],"also":[121],"capture":[122],"irregular":[123],"structures.":[125],"not":[129],"just":[130],"theoretical":[132],"interest:":[133],"have":[135,149,174],"evolved":[136],"out":[137],"our":[139],"experience":[140],"in":[141,152,167],"parallelising":[142],"several":[143],"large-scale":[144],"applications,":[146],"where":[147],"proved":[150],"invaluable":[151],"helping":[153],"manage":[155],"complexities":[157],"behaviour.":[160],"Some":[161],"these":[163,192],"applications":[164],"described":[166],"detail":[168],"here.":[169],"largest":[171],"application":[172],"we":[173,194],"studied":[175],"date,":[177],"Lolita,":[178],"40,000":[181],"line":[182],"natural":[183],"language":[184],"engineering":[185],"system.":[186],"Initial":[187],"results":[188],"show":[189],"for":[191,200],"acceptable":[197],"performance,":[199],"relatively":[201],"little":[202],"effort.":[204]},"counts_by_year":[{"year":2024,"cited_by_count":2},{"year":2020,"cited_by_count":4},{"year":2019,"cited_by_count":4},{"year":2018,"cited_by_count":7},{"year":2017,"cited_by_count":2},{"year":2016,"cited_by_count":6},{"year":2015,"cited_by_count":8},{"year":2014,"cited_by_count":15},{"year":2013,"cited_by_count":14},{"year":2012,"cited_by_count":19}],"updated_date":"2026-05-27T06:14:07.914337","created_date":"2025-10-10T00:00:00"}
