{"id":"https://openalex.org/W1984106647","doi":"https://doi.org/10.1145/1596550.1596575","title":"Partial memoization of concurrency and communication","display_name":"Partial memoization of concurrency and communication","publication_year":2009,"publication_date":"2009-08-31","ids":{"openalex":"https://openalex.org/W1984106647","doi":"https://doi.org/10.1145/1596550.1596575","mag":"1984106647"},"language":"en","primary_location":{"id":"doi:10.1145/1596550.1596575","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1596550.1596575","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 14th ACM SIGPLAN international conference on Functional programming","raw_type":"proceedings-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/A5027309456","display_name":"Lukasz Ziarek","orcid":"https://orcid.org/0000-0003-4353-1998"},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Lukasz Ziarek","raw_affiliation_strings":["Purdue University, West Lafayette, IN, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Purdue University, West Lafayette, IN, USA","institution_ids":["https://openalex.org/I219193219"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5010633349","display_name":"KC Sivaramakrishnan","orcid":"https://orcid.org/0000-0002-3491-1780"},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"KC Sivaramakrishnan","raw_affiliation_strings":["Purdue University, West Lafayette, IN, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Purdue University, West Lafayette, IN, USA","institution_ids":["https://openalex.org/I219193219"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5034957233","display_name":"Suresh Jagannathan","orcid":"https://orcid.org/0000-0001-6871-2424"},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Suresh Jagannathan","raw_affiliation_strings":["Purdue University, West Lafayette, IN, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Purdue University, West Lafayette, IN, USA","institution_ids":["https://openalex.org/I219193219"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":1.0887,"has_fulltext":false,"cited_by_count":13,"citation_normalized_percentile":{"value":0.78434365,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"161","last_page":"172"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10772","display_name":"Distributed systems and fault tolerance","score":1.0,"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"}},"topics":[{"id":"https://openalex.org/T10772","display_name":"Distributed systems and fault tolerance","score":1.0,"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9994000196456909,"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/T10933","display_name":"Real-Time Systems Scheduling","score":0.9961000084877014,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/memoization","display_name":"Memoization","score":0.9817239046096802},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8830909729003906},{"id":"https://openalex.org/keywords/concurrency","display_name":"Concurrency","score":0.6783196330070496},{"id":"https://openalex.org/keywords/thread","display_name":"Thread (computing)","score":0.5563232898712158},{"id":"https://openalex.org/keywords/distributed-computing","display_name":"Distributed computing","score":0.4705177843570709},{"id":"https://openalex.org/keywords/overhead","display_name":"Overhead (engineering)","score":0.4321998357772827},{"id":"https://openalex.org/keywords/partial-order-reduction","display_name":"Partial order reduction","score":0.42101776599884033},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.37530189752578735},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3247929513454437},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.2936592102050781},{"id":"https://openalex.org/keywords/parsing","display_name":"Parsing","score":0.14397692680358887},{"id":"https://openalex.org/keywords/model-checking","display_name":"Model checking","score":0.0865667462348938}],"concepts":[{"id":"https://openalex.org/C79516417","wikidata":"https://www.wikidata.org/wiki/Q1376168","display_name":"Memoization","level":4,"score":0.9817239046096802},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8830909729003906},{"id":"https://openalex.org/C193702766","wikidata":"https://www.wikidata.org/wiki/Q1414548","display_name":"Concurrency","level":2,"score":0.6783196330070496},{"id":"https://openalex.org/C138101251","wikidata":"https://www.wikidata.org/wiki/Q213092","display_name":"Thread (computing)","level":2,"score":0.5563232898712158},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.4705177843570709},{"id":"https://openalex.org/C2779960059","wikidata":"https://www.wikidata.org/wiki/Q7113681","display_name":"Overhead (engineering)","level":2,"score":0.4321998357772827},{"id":"https://openalex.org/C94633896","wikidata":"https://www.wikidata.org/wiki/Q7140378","display_name":"Partial order reduction","level":3,"score":0.42101776599884033},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.37530189752578735},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3247929513454437},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.2936592102050781},{"id":"https://openalex.org/C186644900","wikidata":"https://www.wikidata.org/wiki/Q194152","display_name":"Parsing","level":2,"score":0.14397692680358887},{"id":"https://openalex.org/C110251889","wikidata":"https://www.wikidata.org/wiki/Q1569697","display_name":"Model checking","level":2,"score":0.0865667462348938},{"id":"https://openalex.org/C42560504","wikidata":"https://www.wikidata.org/wiki/Q15419395","display_name":"Top-down parsing","level":3,"score":0.0}],"mesh":[],"locations_count":4,"locations":[{"id":"doi:10.1145/1596550.1596575","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1596550.1596575","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 14th ACM SIGPLAN international conference on Functional programming","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.172.8077","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.172.8077","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cs.purdue.edu/homes/lziarek/icfp09.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.172.8664","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.172.8664","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cs.purdue.edu/homes/lziarek/techRep2.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.330.7482","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.330.7482","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cs.purdue.edu/homes/suresh/papers/icfp09.pdf","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/16","display_name":"Peace, Justice and strong institutions","score":0.550000011920929}],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":32,"referenced_works":["https://openalex.org/W1495087637","https://openalex.org/W1598901422","https://openalex.org/W1965756321","https://openalex.org/W1982431534","https://openalex.org/W2034875370","https://openalex.org/W2035829578","https://openalex.org/W2073065242","https://openalex.org/W2079854797","https://openalex.org/W2083044913","https://openalex.org/W2083089270","https://openalex.org/W2086019038","https://openalex.org/W2089020545","https://openalex.org/W2094222793","https://openalex.org/W2103933790","https://openalex.org/W2107789243","https://openalex.org/W2108204150","https://openalex.org/W2119964141","https://openalex.org/W2127468194","https://openalex.org/W2129990308","https://openalex.org/W2147112772","https://openalex.org/W2163690888","https://openalex.org/W2164496154","https://openalex.org/W2165100134","https://openalex.org/W2165825461","https://openalex.org/W2293560983","https://openalex.org/W2294191420","https://openalex.org/W4230702135","https://openalex.org/W4242949098","https://openalex.org/W4249252902","https://openalex.org/W4249631976","https://openalex.org/W4253063713","https://openalex.org/W4285719527"],"related_works":["https://openalex.org/W2172078515","https://openalex.org/W2574965914","https://openalex.org/W147489498","https://openalex.org/W2462966030","https://openalex.org/W1525816981","https://openalex.org/W2170505350","https://openalex.org/W2884199446","https://openalex.org/W1490475243","https://openalex.org/W1935259232","https://openalex.org/W2944477567"],"abstract_inverted_index":{"Memoization":[0],"is":[1,56,69],"a":[2,15,18,27,135,176,181,203,234,241],"well-known":[3],"optimization":[4],"technique":[5],"used":[6],"to":[7,17,30,38,43,72,91,110,151,161,194,248],"eliminate":[8],"redundant":[9],"calls":[10,90],"for":[11,134,220,226],"pure":[12],"functions.":[13],"If":[14],"call":[16,29,171],"function":[19],"f":[20,31,63,92,122],"with":[21,32,65],"argument":[22],"v":[23,33],"yields":[24],"result":[25],"r,":[26],"subsequent":[28],"can":[34,93,99,172,246],"be":[35,94,159,173],"immediately":[36],"reduced":[37],"r":[39],"without":[40,252],"the":[41,50,131,149,192,209,216,222],"need":[42,150],"re-evaluate":[44],"f's":[45],"body.":[46],"Understanding":[47],"memoization":[48,132,185,188,219,245],"in":[49,112,168,175],"presence":[51],"of":[52,103,184,202,211,218,224,243],"concurrency":[53],"and":[54,229],"communication":[55,87,165],"significantly":[57],"more":[58],"challenging.":[59],"For":[60],"example,":[61],"if":[62,97,121,163,199],"communicates":[64],"other":[66],"threads,":[67],"it":[68],"not":[70,200],"sufficient":[71],"simply":[73],"record":[74],"its":[75],"input/output":[76],"behavior;":[77],"we":[78,98,129,179,214],"must":[79],"also":[80],"track":[81],"inter-thread":[82],"dependencies":[83,115,166],"induced":[84],"by":[85],"these":[86,106,114],"actions.":[88],"Subsequent":[89],"elided":[95],"only":[96],"identify":[100],"an":[101,169],"interleaving":[102],"actions":[104],"from":[105],"call-sites":[107],"that":[108,157,189,239],"lead":[109,247],"states":[111],"which":[113],"are":[116],"satisfied.":[117],"Similar":[118],"issues":[119],"arise":[120],"spawns":[123],"additional":[124],"threads.":[125],"In":[126],"this":[127],"paper,":[128],"consider":[130,215],"problem":[133],"higher-order":[136],"concurrent":[137],"language":[138],"whose":[139],"threads":[140],"may":[141,158],"communicate":[142],"through":[143],"synchronous":[144],"message-based":[145],"communication.":[146],"To":[147,207],"avoid":[148,195],"perform":[152],"unbounded":[153],"state":[154],"space":[155],"search":[156],"necessary":[160],"determine":[162],"all":[164],"manifest":[167],"earlier":[170],"satisfied":[174],"later":[177],"one,":[178],"introduce":[180],"weaker":[182],"notion":[183],"called":[186],"partial":[187],"gives":[190],"implementations":[191],"freedom":[193],"performing":[196],"some":[197],"part,":[198],"all,":[201],"previously":[204],"memoized":[205],"call.":[206],"validate":[208],"effectiveness":[210],"our":[212],"ideas,":[213],"benefits":[217],"reducing":[221],"overhead":[223],"recomputation":[225],"streaming,":[227],"server-based,":[228],"transactional":[230],"applications":[231],"executed":[232],"on":[233,240],"multi-core":[235],"machine.":[236],"We":[237],"show":[238],"variety":[242],"workloads,":[244],"substantial":[249],"performance":[250],"improvements":[251],"incurring":[253],"high":[254],"memory":[255],"costs.":[256]},"counts_by_year":[{"year":2021,"cited_by_count":1},{"year":2019,"cited_by_count":1},{"year":2017,"cited_by_count":1},{"year":2016,"cited_by_count":2},{"year":2015,"cited_by_count":2},{"year":2013,"cited_by_count":2},{"year":2012,"cited_by_count":1}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
