{"id":"https://openalex.org/W2083044913","doi":"https://doi.org/10.1145/1111542.1111570","title":"A monadic approach for avoiding code duplication when staging memoized functions","display_name":"A monadic approach for avoiding code duplication when staging memoized functions","publication_year":2006,"publication_date":"2006-01-09","ids":{"openalex":"https://openalex.org/W2083044913","doi":"https://doi.org/10.1145/1111542.1111570","mag":"2083044913"},"language":"en","primary_location":{"id":"doi:10.1145/1111542.1111570","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1111542.1111570","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation","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/A5011983918","display_name":"Kedar N. Swadi","orcid":null},"institutions":[{"id":"https://openalex.org/I2800727657","display_name":"Persistent Systems (India)","ror":"https://ror.org/03pekdw43","country_code":"IN","type":"education","lineage":["https://openalex.org/I2800727657"]}],"countries":["IN"],"is_corresponding":true,"raw_author_name":"Kedar Swadi","raw_affiliation_strings":["Presistent Systems Pvt. Ltd., Pune, India"],"affiliations":[{"raw_affiliation_string":"Presistent Systems Pvt. Ltd., Pune, India","institution_ids":["https://openalex.org/I2800727657"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5008976751","display_name":"Walid Taha","orcid":"https://orcid.org/0000-0003-3160-9188"},"institutions":[{"id":"https://openalex.org/I74775410","display_name":"Rice University","ror":"https://ror.org/008zs3103","country_code":"US","type":"education","lineage":["https://openalex.org/I74775410"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Walid Taha","raw_affiliation_strings":["Rice University, Houston, TX","Rice University (Houston, TX)"],"affiliations":[{"raw_affiliation_string":"Rice University, Houston, TX","institution_ids":["https://openalex.org/I74775410"]},{"raw_affiliation_string":"Rice University (Houston, TX)","institution_ids":["https://openalex.org/I74775410"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5071276091","display_name":"Oleg Kiselyov","orcid":"https://orcid.org/0000-0002-2570-2186"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Oleg Kiselyov","raw_affiliation_strings":["FNMOC, Monterey, CA"],"affiliations":[{"raw_affiliation_string":"FNMOC, Monterey, CA","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5039271966","display_name":"Enes Pa\u0161ali\u0107","orcid":"https://orcid.org/0000-0001-6343-8796"},"institutions":[{"id":"https://openalex.org/I74775410","display_name":"Rice University","ror":"https://ror.org/008zs3103","country_code":"US","type":"education","lineage":["https://openalex.org/I74775410"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Emir Pasalic","raw_affiliation_strings":["Rice University, Houston, TX","Rice University (Houston, TX)"],"affiliations":[{"raw_affiliation_string":"Rice University, Houston, TX","institution_ids":["https://openalex.org/I74775410"]},{"raw_affiliation_string":"Rice University (Houston, TX)","institution_ids":["https://openalex.org/I74775410"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":4,"corresponding_author_ids":["https://openalex.org/A5011983918"],"corresponding_institution_ids":["https://openalex.org/I2800727657"],"apc_list":null,"apc_paid":null,"fwci":4.1869,"has_fulltext":false,"cited_by_count":44,"citation_normalized_percentile":{"value":0.93797008,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"160","last_page":"169"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"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"}},"topics":[{"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"}},{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9947999715805054,"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/T11241","display_name":"Advanced Malware Detection Techniques","score":0.9886999726295471,"subfield":{"id":"https://openalex.org/subfields/1711","display_name":"Signal Processing"},"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.974329948425293},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8368284702301025},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5966959595680237},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.5959087610244751},{"id":"https://openalex.org/keywords/exponential-function","display_name":"Exponential function","score":0.4755646586418152},{"id":"https://openalex.org/keywords/combinatory-logic","display_name":"Combinatory logic","score":0.42972123622894287},{"id":"https://openalex.org/keywords/function","display_name":"Function (biology)","score":0.4171293377876282},{"id":"https://openalex.org/keywords/generic-programming","display_name":"Generic programming","score":0.4143942594528198},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.37991273403167725},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.35453152656555176},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.12342625856399536}],"concepts":[{"id":"https://openalex.org/C79516417","wikidata":"https://www.wikidata.org/wiki/Q1376168","display_name":"Memoization","level":4,"score":0.974329948425293},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8368284702301025},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5966959595680237},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.5959087610244751},{"id":"https://openalex.org/C151376022","wikidata":"https://www.wikidata.org/wiki/Q168698","display_name":"Exponential function","level":2,"score":0.4755646586418152},{"id":"https://openalex.org/C79678938","wikidata":"https://www.wikidata.org/wiki/Q1481571","display_name":"Combinatory logic","level":2,"score":0.42972123622894287},{"id":"https://openalex.org/C14036430","wikidata":"https://www.wikidata.org/wiki/Q3736076","display_name":"Function (biology)","level":2,"score":0.4171293377876282},{"id":"https://openalex.org/C7051814","wikidata":"https://www.wikidata.org/wiki/Q1051282","display_name":"Generic programming","level":2,"score":0.4143942594528198},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.37991273403167725},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.35453152656555176},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.12342625856399536},{"id":"https://openalex.org/C78458016","wikidata":"https://www.wikidata.org/wiki/Q840400","display_name":"Evolutionary biology","level":1,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C186644900","wikidata":"https://www.wikidata.org/wiki/Q194152","display_name":"Parsing","level":2,"score":0.0},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","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/C42560504","wikidata":"https://www.wikidata.org/wiki/Q15419395","display_name":"Top-down parsing","level":3,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/1111542.1111570","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1111542.1111570","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.60.6204","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.60.6204","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cs.rice.edu/~taha/publications/conference/pepm06.ps","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":54,"referenced_works":["https://openalex.org/W116691724","https://openalex.org/W219888783","https://openalex.org/W1484239722","https://openalex.org/W1488857024","https://openalex.org/W1506948396","https://openalex.org/W1512029759","https://openalex.org/W1528193315","https://openalex.org/W1537143151","https://openalex.org/W1556604985","https://openalex.org/W1560680014","https://openalex.org/W1579170619","https://openalex.org/W1596403187","https://openalex.org/W1608933122","https://openalex.org/W1897405783","https://openalex.org/W1982122213","https://openalex.org/W1997143185","https://openalex.org/W2036753530","https://openalex.org/W2037575886","https://openalex.org/W2037984920","https://openalex.org/W2055947235","https://openalex.org/W2064138295","https://openalex.org/W2073904768","https://openalex.org/W2074674709","https://openalex.org/W2081246285","https://openalex.org/W2081276788","https://openalex.org/W2082315567","https://openalex.org/W2083558835","https://openalex.org/W2090641022","https://openalex.org/W2091336273","https://openalex.org/W2096314727","https://openalex.org/W2102229283","https://openalex.org/W2103416728","https://openalex.org/W2103471998","https://openalex.org/W2113996446","https://openalex.org/W2117161590","https://openalex.org/W2141576692","https://openalex.org/W2155200218","https://openalex.org/W2156876717","https://openalex.org/W2160268991","https://openalex.org/W2161550557","https://openalex.org/W2164197394","https://openalex.org/W2168866950","https://openalex.org/W2168989922","https://openalex.org/W2171433297","https://openalex.org/W2294191420","https://openalex.org/W2296536988","https://openalex.org/W2561675875","https://openalex.org/W2752885492","https://openalex.org/W2753693129","https://openalex.org/W3162918618","https://openalex.org/W4253400909","https://openalex.org/W6604707932","https://openalex.org/W6636364480","https://openalex.org/W7029321148"],"related_works":["https://openalex.org/W2163101388","https://openalex.org/W2162766176","https://openalex.org/W2951199257","https://openalex.org/W4302391323","https://openalex.org/W2478906578","https://openalex.org/W1545995615","https://openalex.org/W1580128549","https://openalex.org/W992919649","https://openalex.org/W1947395352","https://openalex.org/W2109954373"],"abstract_inverted_index":{"Building":[0],"program":[1],"generators":[2],"that":[3,40,82,95,105],"do":[4],"not":[5,114],"duplicate":[6],"generated":[7,27],"code":[8,16],"can":[9,18,41],"be":[10,54],"challenging.":[11],"At":[12],"the":[13,66,96,106],"same":[14],"time,":[15],"duplication":[17],"easily":[19],"increase":[20],"both":[21],"generation":[22],"time":[23],"and":[24,75,78],"runtime":[25],"of":[26,37,68],"programs":[28],"by":[29],"an":[30,35],"exponential":[31],"factor.":[32],"We":[33],"identify":[34],"instance":[36],"this":[38,50,72],"problem":[39,73],"arise":[42],"when":[43,111],"memoized":[44],"functions":[45],"are":[46],"staged.":[47],"Without":[48],"addressing":[49],"problem,":[51],"it":[52],"would":[53],"impossible":[55],"to":[56],"effectively":[57],"stage":[58],"dynamic":[59],"programming":[60],"algorithms.":[61],"Intuitively,":[62],"direct":[63],"staging":[64],"undoes":[65],"effect":[67],"memoization.":[69],"To":[70],"solve":[71],"once":[74],"for":[76,79],"all,":[77],"any":[80],"function":[81],"uses":[83],"memoization,":[84],"we":[85],"propose":[86],"a":[87],"staged":[88],"monadic":[89],"combinator":[90],"library.":[91],"Experimental":[92],"results":[93,102],"confirm":[94],"library":[97,107],"works":[98],"as":[99],"expected.":[100],"Preliminary":[101],"also":[103],"indicate":[104],"is":[108,113],"useful":[109],"even":[110],"memoization":[112],"used.":[115]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":1},{"year":2024,"cited_by_count":2},{"year":2022,"cited_by_count":1},{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":1},{"year":2019,"cited_by_count":1},{"year":2018,"cited_by_count":1},{"year":2016,"cited_by_count":4},{"year":2015,"cited_by_count":2},{"year":2014,"cited_by_count":4},{"year":2013,"cited_by_count":2},{"year":2012,"cited_by_count":6}],"updated_date":"2026-04-04T16:13:02.066488","created_date":"2025-10-10T00:00:00"}
