{"id":"https://openalex.org/W4307886866","doi":"https://doi.org/10.1145/3563350","title":"Synthesizing code quality rules from examples","display_name":"Synthesizing code quality rules from examples","publication_year":2022,"publication_date":"2022-10-31","ids":{"openalex":"https://openalex.org/W4307886866","doi":"https://doi.org/10.1145/3563350"},"language":"en","primary_location":{"id":"doi:10.1145/3563350","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3563350","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3563350","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/3563350","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5025408312","display_name":"Pranav Garg","orcid":"https://orcid.org/0000-0002-0575-6320"},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"Pranav Garg","raw_affiliation_strings":["AWS, USA"],"affiliations":[{"raw_affiliation_string":"AWS, USA","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5038858575","display_name":"Srinivasan H. Sengamedu","orcid":"https://orcid.org/0000-0003-1847-8398"},"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":"Srinivasan H. Sengamedu","raw_affiliation_strings":["Amazon, USA"],"affiliations":[{"raw_affiliation_string":"Amazon, USA","institution_ids":["https://openalex.org/I1311688040"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5025408312"],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":1.5892,"has_fulltext":true,"cited_by_count":6,"citation_normalized_percentile":{"value":0.82759751,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":97},"biblio":{"volume":"6","issue":"OOPSLA2","first_page":"1757","last_page":"1787"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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/T10260","display_name":"Software Engineering Research","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"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/T12423","display_name":"Software Reliability and Analysis Research","score":0.9977999925613403,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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.8216079473495483},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.6530244946479797},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.630711555480957},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6141551733016968},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.5957946181297302},{"id":"https://openalex.org/keywords/graph","display_name":"Graph","score":0.4890223443508148},{"id":"https://openalex.org/keywords/code-generation","display_name":"Code generation","score":0.48483026027679443},{"id":"https://openalex.org/keywords/program-synthesis","display_name":"Program synthesis","score":0.48031777143478394},{"id":"https://openalex.org/keywords/quality","display_name":"Quality (philosophy)","score":0.4431456923484802},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3958001732826233},{"id":"https://openalex.org/keywords/data-mining","display_name":"Data mining","score":0.34950345754623413},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.1613619029521942}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8216079473495483},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.6530244946479797},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.630711555480957},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6141551733016968},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.5957946181297302},{"id":"https://openalex.org/C132525143","wikidata":"https://www.wikidata.org/wiki/Q141488","display_name":"Graph","level":2,"score":0.4890223443508148},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.48483026027679443},{"id":"https://openalex.org/C2776937632","wikidata":"https://www.wikidata.org/wiki/Q4117718","display_name":"Program synthesis","level":2,"score":0.48031777143478394},{"id":"https://openalex.org/C2779530757","wikidata":"https://www.wikidata.org/wiki/Q1207505","display_name":"Quality (philosophy)","level":2,"score":0.4431456923484802},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3958001732826233},{"id":"https://openalex.org/C124101348","wikidata":"https://www.wikidata.org/wiki/Q172491","display_name":"Data mining","level":1,"score":0.34950345754623413},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.1613619029521942},{"id":"https://openalex.org/C38652104","wikidata":"https://www.wikidata.org/wiki/Q3510521","display_name":"Computer security","level":1,"score":0.0},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.0},{"id":"https://openalex.org/C111472728","wikidata":"https://www.wikidata.org/wiki/Q9471","display_name":"Epistemology","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3563350","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3563350","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3563350","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/3563350","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3563350","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3563350","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":[],"funders":[],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4307886866.pdf","grobid_xml":"https://content.openalex.org/works/W4307886866.grobid-xml"},"referenced_works_count":47,"referenced_works":["https://openalex.org/W1481397690","https://openalex.org/W1982658582","https://openalex.org/W2054520963","https://openalex.org/W2060610732","https://openalex.org/W2065489029","https://openalex.org/W2094878426","https://openalex.org/W2110056533","https://openalex.org/W2132012728","https://openalex.org/W2132525863","https://openalex.org/W2144344516","https://openalex.org/W2405324591","https://openalex.org/W2740161549","https://openalex.org/W2747329762","https://openalex.org/W2750179104","https://openalex.org/W2770411433","https://openalex.org/W2784445699","https://openalex.org/W2806718802","https://openalex.org/W2808620986","https://openalex.org/W2888328667","https://openalex.org/W2899376621","https://openalex.org/W2899516694","https://openalex.org/W2956048495","https://openalex.org/W2962809971","https://openalex.org/W2965522163","https://openalex.org/W2968109196","https://openalex.org/W2972934903","https://openalex.org/W2979679630","https://openalex.org/W2996355221","https://openalex.org/W3016643650","https://openalex.org/W3033481405","https://openalex.org/W3103458892","https://openalex.org/W3153103063","https://openalex.org/W3153306569","https://openalex.org/W3160380391","https://openalex.org/W3161891692","https://openalex.org/W3162620983","https://openalex.org/W3174531561","https://openalex.org/W3205123744","https://openalex.org/W3206370442","https://openalex.org/W3206376305","https://openalex.org/W3206530090","https://openalex.org/W3207079465","https://openalex.org/W4233758922","https://openalex.org/W4240869246","https://openalex.org/W4280492061","https://openalex.org/W4298262456","https://openalex.org/W4307731805"],"related_works":["https://openalex.org/W283806354","https://openalex.org/W2528467228","https://openalex.org/W2160620982","https://openalex.org/W3006199460","https://openalex.org/W1575927706","https://openalex.org/W2519339279","https://openalex.org/W2413434725","https://openalex.org/W2084957735","https://openalex.org/W270927586","https://openalex.org/W2137137834"],"abstract_inverted_index":{"Static":[0],"Analysis":[1],"tools":[2],"have":[3,124],"rules":[4,12,31,102,123],"for":[5,67],"several":[6],"code":[7,29,69,81,119],"quality":[8,30,120],"issues":[9],"and":[10,91,133],"these":[11,167],"are":[13,103,161],"created":[14],"by":[15,79,84,113],"experts":[16],"manually.":[17],"In":[18],"this":[19],"paper,":[20],"we":[21,153],"address":[22,96],"the":[23,36,74,87,101],"problem":[24,39],"of":[25,28,49,71,89,129,166],"automatic":[26],"synthesis":[27,38,55,159],"from":[32],"examples.":[33,93,109],"We":[34,51,76,94,110],"formulate":[35],"rule":[37,97],"as":[40,86,127],"synthesizing":[41,114],"first":[42],"order":[43],"logic":[44],"formulas":[45],"over":[46],"graph":[47,65],"representations":[48],"code.":[50],"present":[52],"a":[53],"new":[54],"algorithm":[56],"RhoSynth":[57,78,112],"that":[58,155],"is":[59],"based":[60,138],"on":[61,139],"Integer":[62],"Linear":[63],"Programming-based":[64],"alignment":[66],"identifying":[68],"elements":[70],"interest":[72],"to":[73,163],"rule.":[75],"bootstrap":[77],"leveraging":[80],"changes":[82],"made":[83],"developers":[85],"source":[88],"positive":[90],"negative":[92],"also":[95],"refinement":[98],"in":[99],"which":[100],"incrementally":[104],"improved":[105],"with":[106,150],"additional":[107],"user-provided":[108],"validate":[111],"more":[115],"than":[116],"30":[117],"Java":[118],"rules.":[121,168],"These":[122],"been":[125],"deployed":[126],"part":[128],"Amazon":[130],"CodeGuru":[131],"Reviewer":[132],"their":[134],"precision":[135],"exceeds":[136],"75%":[137],"developer":[140],"feedback":[141],"collected":[142],"during":[143],"live":[144],"code-reviews":[145],"within":[146],"Amazon.":[147],"Through":[148],"comparisons":[149],"recent":[151],"baselines,":[152],"show":[154],"current":[156],"state-of-the-art":[157],"program":[158],"approaches":[160],"unable":[162],"synthesize":[164],"most":[165]},"counts_by_year":[{"year":2025,"cited_by_count":3},{"year":2024,"cited_by_count":1},{"year":2023,"cited_by_count":2}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
