{"id":"https://openalex.org/W3110588399","doi":"https://doi.org/10.1145/3428244","title":"Sound garbage collection for C using pointer provenance","display_name":"Sound garbage collection for C using pointer provenance","publication_year":2020,"publication_date":"2020-11-13","ids":{"openalex":"https://openalex.org/W3110588399","doi":"https://doi.org/10.1145/3428244","mag":"3110588399"},"language":"en","primary_location":{"id":"doi:10.1145/3428244","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3428244","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3428244","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3428244","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5013922094","display_name":"Subarno Banerjee","orcid":"https://orcid.org/0000-0001-5449-2264"},"institutions":[{"id":"https://openalex.org/I27837315","display_name":"University of Michigan","ror":"https://ror.org/00jmfr291","country_code":"US","type":"education","lineage":["https://openalex.org/I27837315"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Subarno Banerjee","raw_affiliation_strings":["University of Michigan, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Michigan, USA","institution_ids":["https://openalex.org/I27837315"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5064664114","display_name":"David Devecsery","orcid":null},"institutions":[{"id":"https://openalex.org/I130701444","display_name":"Georgia Institute of Technology","ror":"https://ror.org/01zkghx44","country_code":"US","type":"education","lineage":["https://openalex.org/I130701444"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"David Devecsery","raw_affiliation_strings":["Georgia Institute of Technology, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Georgia Institute of Technology, USA","institution_ids":["https://openalex.org/I130701444"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5027819880","display_name":"Peter M. Chen","orcid":"https://orcid.org/0000-0002-5951-4183"},"institutions":[{"id":"https://openalex.org/I27837315","display_name":"University of Michigan","ror":"https://ror.org/00jmfr291","country_code":"US","type":"education","lineage":["https://openalex.org/I27837315"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Peter M. Chen","raw_affiliation_strings":["University of Michigan, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Michigan, USA","institution_ids":["https://openalex.org/I27837315"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5075649670","display_name":"Satish Narayanasamy","orcid":"https://orcid.org/0000-0001-5016-1214"},"institutions":[{"id":"https://openalex.org/I27837315","display_name":"University of Michigan","ror":"https://ror.org/00jmfr291","country_code":"US","type":"education","lineage":["https://openalex.org/I27837315"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Satish Narayanasamy","raw_affiliation_strings":["University of Michigan, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Michigan, USA","institution_ids":["https://openalex.org/I27837315"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":4,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.4062,"has_fulltext":true,"cited_by_count":4,"citation_normalized_percentile":{"value":0.70987507,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":96},"biblio":{"volume":"4","issue":"OOPSLA","first_page":"1","last_page":"28"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11424","display_name":"Security and Verification in Computing","score":0.9995999932289124,"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/T11424","display_name":"Security and Verification in Computing","score":0.9995999932289124,"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.996999979019165,"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/T10772","display_name":"Distributed systems and fault tolerance","score":0.9919000267982483,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8084640502929688},{"id":"https://openalex.org/keywords/pointer","display_name":"Pointer (user interface)","score":0.8070138692855835},{"id":"https://openalex.org/keywords/garbage-collection","display_name":"Garbage collection","score":0.7708190679550171},{"id":"https://openalex.org/keywords/pointer-analysis","display_name":"Pointer analysis","score":0.6513100266456604},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5740160942077637},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.4755266010761261},{"id":"https://openalex.org/keywords/spec#","display_name":"Spec#","score":0.44366490840911865},{"id":"https://openalex.org/keywords/liveness","display_name":"Liveness","score":0.41435861587524414},{"id":"https://openalex.org/keywords/garbage","display_name":"Garbage","score":0.3678092062473297},{"id":"https://openalex.org/keywords/static-analysis","display_name":"Static analysis","score":0.23690548539161682},{"id":"https://openalex.org/keywords/computer-hardware","display_name":"Computer hardware","score":0.14265158772468567}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8084640502929688},{"id":"https://openalex.org/C150202949","wikidata":"https://www.wikidata.org/wiki/Q107602","display_name":"Pointer (user interface)","level":2,"score":0.8070138692855835},{"id":"https://openalex.org/C105122174","wikidata":"https://www.wikidata.org/wiki/Q322202","display_name":"Garbage collection","level":3,"score":0.7708190679550171},{"id":"https://openalex.org/C7263679","wikidata":"https://www.wikidata.org/wiki/Q5978076","display_name":"Pointer analysis","level":3,"score":0.6513100266456604},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5740160942077637},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.4755266010761261},{"id":"https://openalex.org/C2778565505","wikidata":"https://www.wikidata.org/wiki/Q2207566","display_name":"Spec#","level":2,"score":0.44366490840911865},{"id":"https://openalex.org/C15569618","wikidata":"https://www.wikidata.org/wiki/Q3561421","display_name":"Liveness","level":2,"score":0.41435861587524414},{"id":"https://openalex.org/C75403996","wikidata":"https://www.wikidata.org/wiki/Q5521979","display_name":"Garbage","level":2,"score":0.3678092062473297},{"id":"https://openalex.org/C97686452","wikidata":"https://www.wikidata.org/wiki/Q7604153","display_name":"Static analysis","level":2,"score":0.23690548539161682},{"id":"https://openalex.org/C9390403","wikidata":"https://www.wikidata.org/wiki/Q3966","display_name":"Computer hardware","level":1,"score":0.14265158772468567}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3428244","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3428244","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3428244","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3428244","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3428244","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3428244","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/16","score":0.6299999952316284,"display_name":"Peace, Justice and strong institutions"}],"awards":[{"id":"https://openalex.org/G623378127","display_name":"SHF: Medium: Optimistic Static Analysis","funder_award_id":"1703931","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W3110588399.pdf","grobid_xml":"https://content.openalex.org/works/W3110588399.grobid-xml"},"referenced_works_count":77,"referenced_works":["https://openalex.org/W51637131","https://openalex.org/W1530333203","https://openalex.org/W1538992328","https://openalex.org/W1546271377","https://openalex.org/W1596586791","https://openalex.org/W1788386172","https://openalex.org/W1965601529","https://openalex.org/W1973162794","https://openalex.org/W1973326708","https://openalex.org/W1997385049","https://openalex.org/W2000387981","https://openalex.org/W2007181618","https://openalex.org/W2027137911","https://openalex.org/W2031707629","https://openalex.org/W2033320580","https://openalex.org/W2036853599","https://openalex.org/W2042702869","https://openalex.org/W2050801173","https://openalex.org/W2053914793","https://openalex.org/W2059278087","https://openalex.org/W2061935392","https://openalex.org/W2066195326","https://openalex.org/W2076878931","https://openalex.org/W2088569679","https://openalex.org/W2089745089","https://openalex.org/W2091768885","https://openalex.org/W2094631165","https://openalex.org/W2100866821","https://openalex.org/W2101811680","https://openalex.org/W2102674270","https://openalex.org/W2105204977","https://openalex.org/W2114350398","https://openalex.org/W2122049982","https://openalex.org/W2122757982","https://openalex.org/W2123934168","https://openalex.org/W2130055503","https://openalex.org/W2130376240","https://openalex.org/W2130711572","https://openalex.org/W2131734025","https://openalex.org/W2134028114","https://openalex.org/W2135394943","https://openalex.org/W2136938453","https://openalex.org/W2138788987","https://openalex.org/W2140709543","https://openalex.org/W2146340823","https://openalex.org/W2155851497","https://openalex.org/W2155962559","https://openalex.org/W2156929189","https://openalex.org/W2158767818","https://openalex.org/W2160068354","https://openalex.org/W2165353025","https://openalex.org/W2169275155","https://openalex.org/W2345585541","https://openalex.org/W2414762192","https://openalex.org/W2420464636","https://openalex.org/W2752929869","https://openalex.org/W2790741450","https://openalex.org/W2798442423","https://openalex.org/W2889788853","https://openalex.org/W2899856510","https://openalex.org/W2913686842","https://openalex.org/W2914947522","https://openalex.org/W2932687117","https://openalex.org/W2934720435","https://openalex.org/W2996860026","https://openalex.org/W3005014122","https://openalex.org/W3125427430","https://openalex.org/W4206635466","https://openalex.org/W4231060654","https://openalex.org/W4234020632","https://openalex.org/W4237257431","https://openalex.org/W4241928781","https://openalex.org/W4244800399","https://openalex.org/W4246166885","https://openalex.org/W4248542611","https://openalex.org/W4250981365","https://openalex.org/W4251369193"],"related_works":["https://openalex.org/W2963257479","https://openalex.org/W4308258772","https://openalex.org/W2341576050","https://openalex.org/W2553375745","https://openalex.org/W2363386825","https://openalex.org/W1521349229","https://openalex.org/W2188526093","https://openalex.org/W1996094959","https://openalex.org/W2516458520","https://openalex.org/W4232198893"],"abstract_inverted_index":{"Garbage":[0],"collection":[1],"(GC)":[2],"support":[3],"for":[4,30,188],"unmanaged":[5],"languages":[6,32],"can":[7,166],"reduce":[8,176],"programming":[9],"burden":[10],"in":[11,65,78,87],"reasoning":[12],"about":[13],"liveness":[14],"of":[15,47,68,151,179],"dynamic":[16,180],"objects.":[17],"It":[18],"also":[19,204],"avoids":[20],"temporal":[21],"memory":[22,26,48,211],"safety":[23],"violations":[24],"and":[25,54,72,112,137,144,207],"leaks.":[27],"Sound":[28],"GC":[29,43,141,201],"weakly-typed":[31],"such":[33],"as":[34],"C/C++,":[35],"however,":[36],"remains":[37],"an":[38,216],"unsolved":[39],"problem.":[40],"Current":[41],"value-based":[42,218],"solutions":[44],"examine":[45],"values":[46],"locations":[49],"to":[50,100,117,147,174,186,193,215],"discover":[51],"the":[52,55,66,129,149,177,194],"pointers,":[53],"objects":[56,154],"they":[57,113],"point":[58],"to.":[59],"The":[60],"approach":[61],"is":[62,203],"inherently":[63],"unsound":[64,217],"presence":[67],"arbitrary":[69],"type":[70],"casts":[71],"pointer":[73,126],"manipulations,":[74],"which":[75],"are":[76,83],"legal":[77],"C/C++.":[79],"Such":[80],"language":[81],"features":[82],"regularly":[84],"used,":[85],"especially":[86],"low-level":[88],"systems":[89],"code.":[90],"In":[91],"this":[92],"paper,":[93],"we":[94],"propose":[95],"Dynamic":[96],"Pointer":[97,197],"Provenance":[98],"Tracking":[99],"realize":[101],"sound":[102,143,200],"GC.":[103,219],"We":[104,159],"observe":[105],"that":[106,165,191],"pointers":[107],"cannot":[108],"be":[109,167],"created":[110],"out-of-thin-air,":[111],"must":[114],"have":[115],"provenance":[116,127,181,198],"at":[118,155],"least":[119],"one":[120],"valid":[121],"allocation.":[122],"Therefore,":[123],"by":[124],"tracking":[125,182],"from":[128,183],"source":[130],"(e.g.,":[131],"malloc)":[132],"through":[133],"both":[134],"explicit":[135],"data-flow":[136],"implicit":[138],"control-flow,":[139],"our":[140],"has":[142],"precise":[145],"information":[146],"compute":[148],"set":[150],"all":[152],"reachable":[153],"any":[156],"program":[157],"state.":[158],"discuss":[160],"several":[161],"static":[162],"analysis":[163],"optimizations,":[164],"employed":[168],"during":[169],"compilation":[170],"aided":[171],"with":[172],"profiling,":[173],"significantly":[175],"overhead":[178],"nearly":[184],"8\u00d7":[185],"16%":[187],"well-behaved":[189],"programs":[190],"adhere":[192],"C":[195],"standards.":[196],"based":[199],"invocation":[202],"13%":[205],"faster":[206],"reclaims":[208],"6%":[209],"more":[210],"on":[212],"average,":[213],"compared":[214]},"counts_by_year":[{"year":2024,"cited_by_count":1},{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":2}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
