{"id":"https://openalex.org/W2507299602","doi":"https://doi.org/10.1145/2951913.2951920","title":"Farms, pipes, streams and reforestation: reasoning about structured parallel processes using types and hylomorphisms","display_name":"Farms, pipes, streams and reforestation: reasoning about structured parallel processes using types and hylomorphisms","publication_year":2016,"publication_date":"2016-08-29","ids":{"openalex":"https://openalex.org/W2507299602","doi":"https://doi.org/10.1145/2951913.2951920","mag":"2507299602"},"language":"en","primary_location":{"id":"doi:10.1145/2951913.2951920","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2951913.2951920","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://research-repository.st-andrews.ac.uk/bitstream/10023/9810/1/Castro_2016_Farms_ICFP2016_AAM.pdf","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5000346761","display_name":"David Castro","orcid":"https://orcid.org/0000-0002-6939-4189"},"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":true,"raw_author_name":"David Castro","raw_affiliation_strings":["University of St. Andrews, UK"],"affiliations":[{"raw_affiliation_string":"University of St. Andrews, UK","institution_ids":["https://openalex.org/I16835326"]}]},{"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":"Kevin Hammond","raw_affiliation_strings":["University of St. Andrews, UK"],"affiliations":[{"raw_affiliation_string":"University of St. Andrews, UK","institution_ids":["https://openalex.org/I16835326"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5073254249","display_name":"Susmit Sarkar","orcid":"https://orcid.org/0000-0002-4259-9213"},"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":"Susmit Sarkar","raw_affiliation_strings":["University of St. Andrews, UK"],"affiliations":[{"raw_affiliation_string":"University of St. Andrews, UK","institution_ids":["https://openalex.org/I16835326"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5000346761"],"corresponding_institution_ids":["https://openalex.org/I16835326"],"apc_list":null,"apc_paid":null,"fwci":3.1998,"has_fulltext":true,"cited_by_count":12,"citation_normalized_percentile":{"value":0.91625705,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":98},"biblio":{"volume":null,"issue":null,"first_page":"4","last_page":"17"},"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.9994999766349792,"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.9994999766349792,"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/T10715","display_name":"Distributed and Parallel Computing Systems","score":0.9988999962806702,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"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.9983000159263611,"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.854495108127594},{"id":"https://openalex.org/keywords/parallelism","display_name":"Parallelism (grammar)","score":0.6389778256416321},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.5057995319366455},{"id":"https://openalex.org/keywords/semantics","display_name":"Semantics (computer science)","score":0.5024635791778564},{"id":"https://openalex.org/keywords/recursion","display_name":"Recursion (computer science)","score":0.49267297983169556},{"id":"https://openalex.org/keywords/exploit","display_name":"Exploit","score":0.4918949604034424},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.4680803716182709},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4456777274608612},{"id":"https://openalex.org/keywords/task-parallelism","display_name":"Task parallelism","score":0.44469690322875977}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.854495108127594},{"id":"https://openalex.org/C2781172179","wikidata":"https://www.wikidata.org/wiki/Q853109","display_name":"Parallelism (grammar)","level":2,"score":0.6389778256416321},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.5057995319366455},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.5024635791778564},{"id":"https://openalex.org/C168773036","wikidata":"https://www.wikidata.org/wiki/Q264164","display_name":"Recursion (computer science)","level":2,"score":0.49267297983169556},{"id":"https://openalex.org/C165696696","wikidata":"https://www.wikidata.org/wiki/Q11287","display_name":"Exploit","level":2,"score":0.4918949604034424},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.4680803716182709},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4456777274608612},{"id":"https://openalex.org/C42992933","wikidata":"https://www.wikidata.org/wiki/Q691169","display_name":"Task parallelism","level":3,"score":0.44469690322875977},{"id":"https://openalex.org/C38652104","wikidata":"https://www.wikidata.org/wiki/Q3510521","display_name":"Computer security","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/2951913.2951920","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2951913.2951920","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming","raw_type":"proceedings-article"},{"id":"pmh:oai:research-repository.st-andrews.ac.uk:10023/9810","is_oa":true,"landing_page_url":"https://hdl.handle.net/10023/9810","pdf_url":"https://research-repository.st-andrews.ac.uk/bitstream/10023/9810/1/Castro_2016_Farms_ICFP2016_AAM.pdf","source":{"id":"https://openalex.org/S4306400230","display_name":"St Andrews Research Repository (St Andrews Research Repository)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I16835326","host_organization_name":"University of St Andrews","host_organization_lineage":["https://openalex.org/I16835326"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"Conference item"}],"best_oa_location":{"id":"pmh:oai:research-repository.st-andrews.ac.uk:10023/9810","is_oa":true,"landing_page_url":"https://hdl.handle.net/10023/9810","pdf_url":"https://research-repository.st-andrews.ac.uk/bitstream/10023/9810/1/Castro_2016_Farms_ICFP2016_AAM.pdf","source":{"id":"https://openalex.org/S4306400230","display_name":"St Andrews Research Repository (St Andrews Research Repository)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I16835326","host_organization_name":"University of St Andrews","host_organization_lineage":["https://openalex.org/I16835326"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"Conference item"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G1147893575","display_name":null,"funder_award_id":"EU H2020","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G2316399547","display_name":null,"funder_award_id":"EP/M027317/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G2707184648","display_name":null,"funder_award_id":"EP/F030657/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G4679651227","display_name":"C3: Scalable &amp; Verified Shared Memory via Consistency-directed Cache Coherence","funder_award_id":"EP/M027317/1","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G5045220161","display_name":null,"funder_award_id":"H2020","funder_id":"https://openalex.org/F4320334627","funder_display_name":"Engineering and Physical Sciences Research Council"},{"id":"https://openalex.org/G6610037986","display_name":null,"funder_award_id":"644235","funder_id":"https://openalex.org/F4320332999","funder_display_name":"Horizon 2020 Framework Programme"},{"id":"https://openalex.org/G7331901853","display_name":null,"funder_award_id":"EU H2020","funder_id":"https://openalex.org/F4320332999","funder_display_name":"Horizon 2020 Framework Programme"},{"id":"https://openalex.org/G8261225573","display_name":null,"funder_award_id":"644235","funder_id":"https://openalex.org/F4320335254","funder_display_name":"Horizon 2020"}],"funders":[{"id":"https://openalex.org/F4320332999","display_name":"Horizon 2020 Framework Programme","ror":"https://ror.org/00k4n6c32"},{"id":"https://openalex.org/F4320334627","display_name":"Engineering and Physical Sciences Research Council","ror":"https://ror.org/0439y7842"},{"id":"https://openalex.org/F4320335254","display_name":"Horizon 2020","ror":null}],"has_content":{"grobid_xml":false,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2507299602.pdf"},"referenced_works_count":38,"referenced_works":["https://openalex.org/W186086078","https://openalex.org/W200556659","https://openalex.org/W1489689515","https://openalex.org/W1513982482","https://openalex.org/W1517465657","https://openalex.org/W1520171143","https://openalex.org/W1526260980","https://openalex.org/W1528303475","https://openalex.org/W1535796526","https://openalex.org/W1555424274","https://openalex.org/W1561415812","https://openalex.org/W1583295953","https://openalex.org/W1592287058","https://openalex.org/W1603012589","https://openalex.org/W1608714802","https://openalex.org/W1963634389","https://openalex.org/W1997163113","https://openalex.org/W1997978901","https://openalex.org/W2055893308","https://openalex.org/W2062886135","https://openalex.org/W2074136126","https://openalex.org/W2077462786","https://openalex.org/W2087240301","https://openalex.org/W2090504951","https://openalex.org/W2091138079","https://openalex.org/W2095520948","https://openalex.org/W2095553492","https://openalex.org/W2126693002","https://openalex.org/W2127814526","https://openalex.org/W2145139128","https://openalex.org/W2145861698","https://openalex.org/W2158798722","https://openalex.org/W2171496589","https://openalex.org/W2510286117","https://openalex.org/W2911902296","https://openalex.org/W6630645706","https://openalex.org/W6684385326","https://openalex.org/W7006490239"],"related_works":["https://openalex.org/W2950520577","https://openalex.org/W1501159154","https://openalex.org/W74409296","https://openalex.org/W2003935582","https://openalex.org/W2567390125","https://openalex.org/W4405088460","https://openalex.org/W1554644772","https://openalex.org/W305742777","https://openalex.org/W2940653809","https://openalex.org/W2468095077"],"abstract_inverted_index":{"The":[0],"increasing":[1],"importance":[2],"of":[3,9,49,84,114,132,168],"parallelism":[4,18],"has":[5],"motivated":[6],"the":[7,82,90],"creation":[8],"better":[10],"abstractions":[11,27],"for":[12,57,126],"writing":[13],"parallel":[14,55,63,86,128,152,170],"software,":[15],"including":[16],"structured":[17,127],"using":[19],"nested":[20],"algorithmic":[21,50],"skeletons.":[22],"Such":[23],"approaches":[24],"provide":[25],"high-level":[26],"that":[28,52,102,169,172],"avoid":[29],"common":[30],"problems,":[31],"such":[32],"as":[33],"race":[34],"conditions,":[35],"and":[36,88,121,162],"often":[37],"allow":[38],"strong":[39,104],"cost":[40,176],"models":[41],"to":[42,71,77,141,148,164],"be":[43],"defined.":[44],"However,":[45],"choosing":[46],"a":[47,58,66,98,115,123,150,155,166],"combination":[48],"skeletons":[51],"yields":[53],"good":[54],"speedups":[56],"program":[59,156],"on":[60],"some":[61,174],"specific":[62],"architecture":[64],"remains":[65],"difficult":[67],"task.":[68],"In":[69],"order":[70],"achieve":[72],"this,":[73],"it":[74,138,145],"is":[75,139,146],"necessary":[76],"simultaneously":[78],"reason":[79],"both":[80],"about":[81,89,107],"costs":[83],"different":[85],"structures":[87],"semantic":[91],"equivalences":[92],"between":[93],"them.":[94],"This":[95],"paper":[96],"presents":[97],"new":[99],"type-based":[100],"mechanism":[101],"enables":[103],"static":[105],"reasoning":[106],"these":[108,133],"properties.":[109],"We":[110],"exploit":[111],"well-known":[112],"properties":[113],"very":[116],"general":[117],"recursion":[118],"pattern,":[119],"hylomorphisms,":[120],"give":[122],"denotational":[124],"semantics":[125],"processes":[129],"in":[130],"terms":[131],"hylomorphisms.":[134],"Using":[135],"our":[136],"approach,":[137],"possible":[140,147],"determine":[142],"formally":[143],"whether":[144],"introduce":[149],"desired":[151],"structure":[153,171],"into":[154],"without":[157],"altering":[158],"its":[159],"functional":[160],"behaviour,":[161],"also":[163],"choose":[165],"version":[167],"minimises":[173],"given":[175],"model.":[177]},"counts_by_year":[{"year":2025,"cited_by_count":1},{"year":2021,"cited_by_count":1},{"year":2019,"cited_by_count":2},{"year":2018,"cited_by_count":3},{"year":2017,"cited_by_count":5}],"updated_date":"2026-04-10T15:06:20.359241","created_date":"2025-10-10T00:00:00"}
