{"id":"https://openalex.org/W4409311173","doi":"https://doi.org/10.1145/3720422","title":"Fast Constraint Synthesis for C++ Function Templates","display_name":"Fast Constraint Synthesis for C++ Function Templates","publication_year":2025,"publication_date":"2025-04-09","ids":{"openalex":"https://openalex.org/W4409311173","doi":"https://doi.org/10.1145/3720422"},"language":"en","primary_location":{"id":"doi:10.1145/3720422","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3720422","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3720422","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/3720422","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5084788593","display_name":"Shuo Ding","orcid":"https://orcid.org/0000-0003-0843-0729"},"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":"Shuo Ding","raw_affiliation_strings":["Georgia Institute of Technology, Atlanta, USA"],"raw_orcid":"https://orcid.org/0000-0003-0843-0729","affiliations":[{"raw_affiliation_string":"Georgia Institute of Technology, Atlanta, USA","institution_ids":["https://openalex.org/I130701444"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5078231842","display_name":"Qirun Zhang","orcid":"https://orcid.org/0000-0001-5367-9377"},"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":"Qirun Zhang","raw_affiliation_strings":["Georgia Institute of Technology, Atlanta, USA"],"raw_orcid":"https://orcid.org/0000-0001-5367-9377","affiliations":[{"raw_affiliation_string":"Georgia Institute of Technology, Atlanta, USA","institution_ids":["https://openalex.org/I130701444"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I130701444"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":true,"cited_by_count":0,"citation_normalized_percentile":{"value":0.06017623,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"9","issue":"OOPSLA1","first_page":"225","last_page":"252"},"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.9993000030517578,"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.9993000030517578,"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/T10142","display_name":"Formal Methods in Verification","score":0.9990000128746033,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"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.9979000091552734,"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/template","display_name":"Template","score":0.8403297662734985},{"id":"https://openalex.org/keywords/constraint","display_name":"Constraint (computer-aided design)","score":0.5169045925140381},{"id":"https://openalex.org/keywords/function","display_name":"Function (biology)","score":0.48125049471855164},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.4572574198246002},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.3131682276725769},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.2737535536289215},{"id":"https://openalex.org/keywords/biology","display_name":"Biology","score":0.09319248795509338},{"id":"https://openalex.org/keywords/geometry","display_name":"Geometry","score":0.09145146608352661},{"id":"https://openalex.org/keywords/cell-biology","display_name":"Cell biology","score":0.08590218424797058}],"concepts":[{"id":"https://openalex.org/C82714645","wikidata":"https://www.wikidata.org/wiki/Q438331","display_name":"Template","level":2,"score":0.8403297662734985},{"id":"https://openalex.org/C2776036281","wikidata":"https://www.wikidata.org/wiki/Q48769818","display_name":"Constraint (computer-aided design)","level":2,"score":0.5169045925140381},{"id":"https://openalex.org/C14036430","wikidata":"https://www.wikidata.org/wiki/Q3736076","display_name":"Function (biology)","level":2,"score":0.48125049471855164},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.4572574198246002},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.3131682276725769},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.2737535536289215},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.09319248795509338},{"id":"https://openalex.org/C2524010","wikidata":"https://www.wikidata.org/wiki/Q8087","display_name":"Geometry","level":1,"score":0.09145146608352661},{"id":"https://openalex.org/C95444343","wikidata":"https://www.wikidata.org/wiki/Q7141","display_name":"Cell biology","level":1,"score":0.08590218424797058}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3720422","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3720422","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3720422","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/3720422","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3720422","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3720422","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":[],"awards":[{"id":"https://openalex.org/G1037014486","display_name":null,"funder_award_id":"N66001","funder_id":"https://openalex.org/F4320332180","funder_display_name":"Defense Advanced Research Projects Agency"},{"id":"https://openalex.org/G1453356816","display_name":"SHF:Small: Debug Information Validation for Optimizing Compilers","funder_award_id":"2114627","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G1643666990","display_name":null,"funder_award_id":"N66001- 21-C-4024","funder_id":"https://openalex.org/F4320332180","funder_display_name":"Defense Advanced Research Projects Agency"},{"id":"https://openalex.org/G3629267508","display_name":"CAREER: Program Analysis with Precise Abstractions","funder_award_id":"2237440","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"},{"id":"https://openalex.org/F4320332180","display_name":"Defense Advanced Research Projects Agency","ror":"https://ror.org/02caytj08"},{"id":"https://openalex.org/F4320332815","display_name":"Advanced Research Projects Agency","ror":"https://ror.org/02caytj08"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4409311173.pdf","grobid_xml":"https://content.openalex.org/works/W4409311173.grobid-xml"},"referenced_works_count":41,"referenced_works":["https://openalex.org/W61606928","https://openalex.org/W208073541","https://openalex.org/W1691668264","https://openalex.org/W1859941069","https://openalex.org/W1969664124","https://openalex.org/W1997981086","https://openalex.org/W2018094844","https://openalex.org/W2074644416","https://openalex.org/W2101432564","https://openalex.org/W2108632968","https://openalex.org/W2113709047","https://openalex.org/W2129345992","https://openalex.org/W2130402533","https://openalex.org/W2134093956","https://openalex.org/W2139099489","https://openalex.org/W2140021378","https://openalex.org/W2140845192","https://openalex.org/W2160151966","https://openalex.org/W2329329248","https://openalex.org/W2347106652","https://openalex.org/W2548165777","https://openalex.org/W2561055248","https://openalex.org/W2561266941","https://openalex.org/W2778029444","https://openalex.org/W2953940813","https://openalex.org/W2954401434","https://openalex.org/W2962823786","https://openalex.org/W2972574632","https://openalex.org/W3186343449","https://openalex.org/W3189928571","https://openalex.org/W3207476902","https://openalex.org/W4206047963","https://openalex.org/W4225149718","https://openalex.org/W4229675450","https://openalex.org/W4245276232","https://openalex.org/W4246166885","https://openalex.org/W4253456425","https://openalex.org/W4284685949","https://openalex.org/W4308643012","https://openalex.org/W4387885479","https://openalex.org/W6949649045"],"related_works":["https://openalex.org/W4391375266","https://openalex.org/W2899084033","https://openalex.org/W2748952813","https://openalex.org/W2121300814","https://openalex.org/W4231091074","https://openalex.org/W1886613375","https://openalex.org/W4236081792","https://openalex.org/W4250583430","https://openalex.org/W4234406076","https://openalex.org/W2010731026"],"abstract_inverted_index":{"C++":[0,89,110,168,204],"templates":[1,65],"are":[2,33],"a":[3,115],"powerful":[4],"feature":[5],"for":[6,35,64,109,133,215,224,245,249],"generic":[7],"programming":[8],"and":[9,28,39,48,66,101,128,144,163,184,211,232,247],"compile-time":[10],"computations,":[11],"but":[12],"C++compilers":[13],"often":[14,25],"emit":[15],"overly":[16],"verbose":[17],"template":[18,55,74,126],"error":[19,23,240],"messages.":[20],"Even":[21],"short":[22],"messages":[24],"involve":[26],"unnecessary":[27],"confusing":[29],"implementation":[30],"details,":[31],"which":[32,51,80,192],"difficult":[34],"developers":[36],"to":[37,106,119,149],"read":[38],"understand.":[40],"To":[41],"address":[42],"this":[43],"problem,":[44],"C++20":[45],"introduced":[46],"constraints":[47,75,108,132,148,214,222,237],"concepts":[49],",":[50],"impose":[52],"requirements":[53],"on":[54,159,166,233],"parameters.":[56],"The":[57,140,221],"new":[58],"features":[59],"can":[60,67,76,198,238],"define":[61],"clearer":[62],"interfaces":[63],"improve":[68],"compiler":[69],"diagnostics.":[70],"However,":[71],"manually":[72],"specifying":[73],"still":[77],"be":[78],"non-trivial,":[79],"becomes":[81],"even":[82],"more":[83],"challenging":[84],"when":[85],"working":[86],"with":[87,92,228],"legacy":[88],"projects":[90],"or":[91],"frequent":[93],"code":[94,205],"changes.":[95],"This":[96],"paper":[97],"bridges":[98],"the":[99,121,125,138,160,179,187,218,229,235],"gap":[100],"proposes":[102],"an":[103],"automatic":[104],"approach":[105,157],"synthesizing":[107],"function":[111,151,219],"templates.":[112,195,220],"We":[113,153],"utilize":[114],"lightweight":[116],"static":[117],"analysis":[118,141],"analyze":[120],"usage":[122],"patterns":[123],"within":[124],"body":[127],"summarize":[129],"them":[130],"into":[131],"each":[134],"type":[135],"parameter":[136],"of":[137,147,191,203,217],"template.":[139],"is":[142],"inter-procedural":[143],"uses":[145],"disjunctions":[146],"model":[150],"overloading.":[152],"have":[154],"implemented":[155],"our":[156],"based":[158],"Clang":[161],"frontend":[162],"evaluated":[164],"it":[165],"two":[167,173],"libraries":[169],"chosen":[170],"separately":[171],"from":[172,178,186],"popular":[174],"library":[175],"sets:":[176],"algorithm":[177,225,246],"Standard":[180],"Template":[181],"Library":[182],"(STL)":[183],"special_functions":[185,250],"Boost":[188],"library,":[189],"both":[190],"extensively":[193],"use":[194],"Our":[196],"tool":[197],"process":[199],"over":[200],"110k":[201],"lines":[202],"in":[206],"less":[207],"than":[208],"1.5":[209],"seconds":[210],"synthesize":[212],"non-trivial":[213],"30%\u201340%":[216],"synthesized":[223,236],"align":[226],"well":[227],"standard":[230],"documentation":[231],"average,":[234],"reduce":[239],"message":[241],"lengths":[242],"by":[243],"56.6%":[244],"63.8%":[248],".":[251]},"counts_by_year":[],"updated_date":"2026-08-24T07:32:12.397491","created_date":"2025-10-10T00:00:00"}
