{"id":"https://openalex.org/W4225163209","doi":"https://doi.org/10.1145/3527322","title":"C to checked C by 3c","display_name":"C to checked C by 3c","publication_year":2022,"publication_date":"2022-04-29","ids":{"openalex":"https://openalex.org/W4225163209","doi":"https://doi.org/10.1145/3527322"},"language":"en","primary_location":{"id":"doi:10.1145/3527322","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3527322","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3527322","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":null,"license_id":null,"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":["arxiv","crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3527322","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5071486684","display_name":"Aravind Machiry","orcid":"https://orcid.org/0000-0001-5124-6818"},"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":"Aravind Machiry","raw_affiliation_strings":["Purdue University, USA"],"raw_orcid":"https://orcid.org/0000-0001-5124-6818","affiliations":[{"raw_affiliation_string":"Purdue University, USA","institution_ids":["https://openalex.org/I219193219"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5019712655","display_name":"John Kastner","orcid":"https://orcid.org/0000-0002-1273-5990"},"institutions":[{"id":"https://openalex.org/I1311688040","display_name":"Amazon (United States)","ror":"https://ror.org/04mv4n011","country_code":"US","type":"company","lineage":["https://openalex.org/I1311688040"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"John Kastner","raw_affiliation_strings":["Amazon, USA"],"raw_orcid":"https://orcid.org/0000-0002-1273-5990","affiliations":[{"raw_affiliation_string":"Amazon, USA","institution_ids":["https://openalex.org/I1311688040"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5066642904","display_name":"Matt McCutchen","orcid":"https://orcid.org/0000-0003-4814-5148"},"institutions":[{"id":"https://openalex.org/I1311688040","display_name":"Amazon (United States)","ror":"https://ror.org/04mv4n011","country_code":"US","type":"company","lineage":["https://openalex.org/I1311688040"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Matt McCutchen","raw_affiliation_strings":["Amazon, USA"],"raw_orcid":"https://orcid.org/0000-0003-4814-5148","affiliations":[{"raw_affiliation_string":"Amazon, USA","institution_ids":["https://openalex.org/I1311688040"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5011732057","display_name":"Aaron Eline","orcid":"https://orcid.org/0000-0002-9105-4922"},"institutions":[{"id":"https://openalex.org/I1311688040","display_name":"Amazon (United States)","ror":"https://ror.org/04mv4n011","country_code":"US","type":"company","lineage":["https://openalex.org/I1311688040"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Aaron Eline","raw_affiliation_strings":["Amazon, USA"],"raw_orcid":"https://orcid.org/0000-0002-9105-4922","affiliations":[{"raw_affiliation_string":"Amazon, USA","institution_ids":["https://openalex.org/I1311688040"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5040567153","display_name":"Kyle Headley","orcid":"https://orcid.org/0000-0002-4880-4150"},"institutions":[{"id":"https://openalex.org/I1311688040","display_name":"Amazon (United States)","ror":"https://ror.org/04mv4n011","country_code":"US","type":"company","lineage":["https://openalex.org/I1311688040"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Kyle Headley","raw_affiliation_strings":["Amazon, USA"],"raw_orcid":"https://orcid.org/0000-0002-4880-4150","affiliations":[{"raw_affiliation_string":"Amazon, USA","institution_ids":["https://openalex.org/I1311688040"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5046625836","display_name":"Michael Hicks","orcid":"https://orcid.org/0000-0002-2759-9223"},"institutions":[{"id":"https://openalex.org/I1311688040","display_name":"Amazon (United States)","ror":"https://ror.org/04mv4n011","country_code":"US","type":"company","lineage":["https://openalex.org/I1311688040"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Michael Hicks","raw_affiliation_strings":["Amazon, USA"],"raw_orcid":"https://orcid.org/0000-0002-2759-9223","affiliations":[{"raw_affiliation_string":"Amazon, USA","institution_ids":["https://openalex.org/I1311688040"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":6,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":2.0811,"has_fulltext":true,"cited_by_count":17,"citation_normalized_percentile":{"value":0.8864085,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":99},"biblio":{"volume":"6","issue":"OOPSLA1","first_page":"1","last_page":"29"},"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.9998999834060669,"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.9998999834060669,"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/T11241","display_name":"Advanced Malware Detection Techniques","score":0.9950000047683716,"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"}},{"id":"https://openalex.org/T11005","display_name":"Radiation Effects in Electronics","score":0.9866999983787537,"subfield":{"id":"https://openalex.org/subfields/2208","display_name":"Electrical and Electronic Engineering"},"field":{"id":"https://openalex.org/fields/22","display_name":"Engineering"},"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.7970002293586731},{"id":"https://openalex.org/keywords/pointer","display_name":"Pointer (user interface)","score":0.7892806529998779},{"id":"https://openalex.org/keywords/porting","display_name":"Porting","score":0.7302757501602173},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7281814217567444},{"id":"https://openalex.org/keywords/code-refactoring","display_name":"Code refactoring","score":0.6876658201217651},{"id":"https://openalex.org/keywords/memory-safety","display_name":"Memory safety","score":0.6372649669647217},{"id":"https://openalex.org/keywords/static-analysis","display_name":"Static analysis","score":0.4823445677757263},{"id":"https://openalex.org/keywords/annotation","display_name":"Annotation","score":0.4668135643005371},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.4539385735988617},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.4517471492290497},{"id":"https://openalex.org/keywords/compiled-language","display_name":"Compiled language","score":0.4311252236366272},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4292328655719757},{"id":"https://openalex.org/keywords/process","display_name":"Process (computing)","score":0.41926315426826477},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.4019438624382019},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.2395254373550415},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.16516044735908508}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7970002293586731},{"id":"https://openalex.org/C150202949","wikidata":"https://www.wikidata.org/wiki/Q107602","display_name":"Pointer (user interface)","level":2,"score":0.7892806529998779},{"id":"https://openalex.org/C106251023","wikidata":"https://www.wikidata.org/wiki/Q851989","display_name":"Porting","level":3,"score":0.7302757501602173},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7281814217567444},{"id":"https://openalex.org/C152752567","wikidata":"https://www.wikidata.org/wiki/Q116877","display_name":"Code refactoring","level":3,"score":0.6876658201217651},{"id":"https://openalex.org/C28180684","wikidata":"https://www.wikidata.org/wiki/Q4080983","display_name":"Memory safety","level":3,"score":0.6372649669647217},{"id":"https://openalex.org/C97686452","wikidata":"https://www.wikidata.org/wiki/Q7604153","display_name":"Static analysis","level":2,"score":0.4823445677757263},{"id":"https://openalex.org/C2776321320","wikidata":"https://www.wikidata.org/wiki/Q857525","display_name":"Annotation","level":2,"score":0.4668135643005371},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.4539385735988617},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.4517471492290497},{"id":"https://openalex.org/C92966194","wikidata":"https://www.wikidata.org/wiki/Q651794","display_name":"Compiled language","level":4,"score":0.4311252236366272},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4292328655719757},{"id":"https://openalex.org/C98045186","wikidata":"https://www.wikidata.org/wiki/Q205663","display_name":"Process (computing)","level":2,"score":0.41926315426826477},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.4019438624382019},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.2395254373550415},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.16516044735908508},{"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/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.0},{"id":"https://openalex.org/C19024347","wikidata":"https://www.wikidata.org/wiki/Q211496","display_name":"High-level programming language","level":3,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3527322","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3527322","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3527322","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":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},{"id":"pmh:oai:arXiv.org:2203.13445","is_oa":true,"landing_page_url":"http://arxiv.org/abs/2203.13445","pdf_url":"https://arxiv.org/pdf/2203.13445","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"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":"text"}],"best_oa_location":{"id":"doi:10.1145/3527322","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3527322","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3527322","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":null,"license_id":null,"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.7699999809265137,"display_name":"Peace, Justice and strong institutions"}],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4225163209.pdf","grobid_xml":"https://content.openalex.org/works/W4225163209.grobid-xml"},"referenced_works_count":30,"referenced_works":["https://openalex.org/W1534545952","https://openalex.org/W1874682220","https://openalex.org/W1996543446","https://openalex.org/W2005907808","https://openalex.org/W2005978190","https://openalex.org/W2043100293","https://openalex.org/W2045238089","https://openalex.org/W2088105804","https://openalex.org/W2098806455","https://openalex.org/W2117798902","https://openalex.org/W2122757982","https://openalex.org/W2147683775","https://openalex.org/W2155851497","https://openalex.org/W2156268601","https://openalex.org/W2157859774","https://openalex.org/W2301548261","https://openalex.org/W2886526538","https://openalex.org/W2931305575","https://openalex.org/W2948273719","https://openalex.org/W2963934162","https://openalex.org/W2996400815","https://openalex.org/W3094003780","https://openalex.org/W3137596000","https://openalex.org/W3205049031","https://openalex.org/W3206533211","https://openalex.org/W4225163209","https://openalex.org/W4237606848","https://openalex.org/W4244807040","https://openalex.org/W4253298582","https://openalex.org/W4253716618"],"related_works":["https://openalex.org/W2141365240","https://openalex.org/W4245736681","https://openalex.org/W4239042909","https://openalex.org/W4242254025","https://openalex.org/W2362192177","https://openalex.org/W4321012239","https://openalex.org/W4200542740","https://openalex.org/W4206254495","https://openalex.org/W4237643552","https://openalex.org/W2056167392"],"abstract_inverted_index":{"Owing":[0],"to":[1,63,92,117,125,141,146,158,174],"the":[2,59],"continued":[3],"use":[4],"of":[5,18],"C":[6,31,33,40,48,90],"(and":[7,162],"C++),":[8],"spatial":[9],"safety":[10,75],"violations":[11],"(e.g.,":[12],"buffer":[13],"overflows)":[14],"still":[15],"constitute":[16],"one":[17],"today's":[19],"most":[20],"dangerous":[21],"and":[22,58,114,124,182,186],"prevalent":[23],"security":[24],"vulnerabilities.":[25],"To":[26],"combat":[27],"these":[28],"violations,":[29],"Checked":[30,39,93],"extends":[32],"with":[34,55,184,196],"bounds-enforced":[35],"checked":[36,50,122,179],"pointer":[37,180],"types.":[38],"is":[41],"essentially":[42],"a":[43,83,88,100,137,143],"gradually":[44],"typed":[45],"spatially":[46],"safe":[47],"-":[49,112,116],"pointers":[51,120,131],"are":[52],"backwards-binary":[53],"compatible":[54],"legacy":[56,89,119],"pointers,":[57,123],"language":[60],"allows":[61],"them":[62],"be":[64,78,150,156,175],"added":[65],"piecemeal,":[66],"rather":[67],"than":[68],"necessarily":[69],"all":[70],"at":[71,177],"once,":[72],"so":[73],"that":[74,132,148],"retrofitting":[76],"can":[77,155],"incremental.":[79],"This":[80],"paper":[81],"presents":[82],"semi-automated":[84],"process":[85,96],"for":[86,130],"porting":[87],"program":[91],"C.":[94],"The":[95],"centers":[97],"on":[98,167],"3C,":[99],"static":[101,109],"analysis-based":[102],"annotation":[103],"tool.":[104],"3C":[105,135,154,173,191],"employs":[106],"two":[107],"novel":[108],"analysis":[110,140],"algorithms":[111],"typ3c":[113],"boun3c":[115],"annotate":[118],"as":[121],"infer":[126,159],"array":[127],"bounds":[128],"annotations":[129,161],"need":[133],"them.":[134],"performs":[136],"root":[138,164],"cause":[139],"direct":[142],"human":[144],"developer":[145],"code":[147,189],"should":[149],"refactored;":[151],"once":[152],"done,":[153],"re-run":[157],"further":[160],"updated":[163],"causes).":[165],"Experiments":[166],"11":[168],"programs":[169],"totaling":[170],"319KLoC":[171],"show":[172],"effective":[176],"inferring":[178],"types,":[181],"experience":[183],"previously":[185],"newly":[187],"ported":[188],"finds":[190],"works":[192],"well":[193],"when":[194],"combined":[195],"human-driven":[197],"refactoring.":[198]},"counts_by_year":[{"year":2026,"cited_by_count":2},{"year":2025,"cited_by_count":7},{"year":2024,"cited_by_count":1},{"year":2023,"cited_by_count":6},{"year":2022,"cited_by_count":1}],"updated_date":"2026-06-12T08:23:45.883708","created_date":"2025-10-10T00:00:00"}
