{"id":"https://openalex.org/W4308641593","doi":"https://doi.org/10.1145/3540250.3549143","title":"Making Python code idiomatic by automatic refactoring non-idiomatic Python code with pythonic idioms","display_name":"Making Python code idiomatic by automatic refactoring non-idiomatic Python code with pythonic idioms","publication_year":2022,"publication_date":"2022-11-07","ids":{"openalex":"https://openalex.org/W4308641593","doi":"https://doi.org/10.1145/3540250.3549143"},"language":"en","primary_location":{"id":"doi:10.1145/3540250.3549143","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3540250.3549143","pdf_url":null,"source":{"id":"https://openalex.org/S4363608883","display_name":"Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"conference"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering","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/A5100715304","display_name":"Zejun Zhang","orcid":"https://orcid.org/0000-0003-1466-8290"},"institutions":[{"id":"https://openalex.org/I118347636","display_name":"Australian National University","ror":"https://ror.org/019wvm592","country_code":"AU","type":"education","lineage":["https://openalex.org/I118347636"]}],"countries":["AU"],"is_corresponding":true,"raw_author_name":"Zejun Zhang","raw_affiliation_strings":["Australian National University, Australia"],"affiliations":[{"raw_affiliation_string":"Australian National University, Australia","institution_ids":["https://openalex.org/I118347636"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5028641941","display_name":"Zhenchang Xing","orcid":"https://orcid.org/0000-0001-7663-1421"},"institutions":[{"id":"https://openalex.org/I118347636","display_name":"Australian National University","ror":"https://ror.org/019wvm592","country_code":"AU","type":"education","lineage":["https://openalex.org/I118347636"]},{"id":"https://openalex.org/I42894916","display_name":"Data61","ror":"https://ror.org/03q397159","country_code":"AU","type":"other","lineage":["https://openalex.org/I1292875679","https://openalex.org/I2801453606","https://openalex.org/I42894916","https://openalex.org/I4387156119"]},{"id":"https://openalex.org/I1292875679","display_name":"Commonwealth Scientific and Industrial Research Organisation","ror":"https://ror.org/03qn8fb07","country_code":"AU","type":"funder","lineage":["https://openalex.org/I1292875679","https://openalex.org/I2801453606","https://openalex.org/I4387156119"]}],"countries":["AU"],"is_corresponding":false,"raw_author_name":"Zhenchang Xing","raw_affiliation_strings":["CSIRO\u2019s Data61, Australia / Australian National University, Australia"],"affiliations":[{"raw_affiliation_string":"CSIRO\u2019s Data61, Australia / Australian National University, Australia","institution_ids":["https://openalex.org/I42894916","https://openalex.org/I1292875679","https://openalex.org/I118347636"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5006669765","display_name":"Xin Xia","orcid":"https://orcid.org/0000-0002-6302-3256"},"institutions":[{"id":"https://openalex.org/I2250955327","display_name":"Huawei Technologies (China)","ror":"https://ror.org/00cmhce21","country_code":"CN","type":"company","lineage":["https://openalex.org/I2250955327"]}],"countries":["CN"],"is_corresponding":false,"raw_author_name":"Xin Xia","raw_affiliation_strings":["Huawei, China"],"affiliations":[{"raw_affiliation_string":"Huawei, China","institution_ids":["https://openalex.org/I2250955327"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5006841485","display_name":"Xiwei Xu","orcid":"https://orcid.org/0000-0002-2273-1862"},"institutions":[{"id":"https://openalex.org/I1292875679","display_name":"Commonwealth Scientific and Industrial Research Organisation","ror":"https://ror.org/03qn8fb07","country_code":"AU","type":"funder","lineage":["https://openalex.org/I1292875679","https://openalex.org/I2801453606","https://openalex.org/I4387156119"]},{"id":"https://openalex.org/I42894916","display_name":"Data61","ror":"https://ror.org/03q397159","country_code":"AU","type":"other","lineage":["https://openalex.org/I1292875679","https://openalex.org/I2801453606","https://openalex.org/I42894916","https://openalex.org/I4387156119"]}],"countries":["AU"],"is_corresponding":false,"raw_author_name":"Xiwei Xu","raw_affiliation_strings":["CSIRO\u2019s Data61, Australia"],"affiliations":[{"raw_affiliation_string":"CSIRO\u2019s Data61, Australia","institution_ids":["https://openalex.org/I42894916","https://openalex.org/I1292875679"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5064683660","display_name":"Liming Zhu","orcid":"https://orcid.org/0000-0001-5839-3765"},"institutions":[{"id":"https://openalex.org/I42894916","display_name":"Data61","ror":"https://ror.org/03q397159","country_code":"AU","type":"other","lineage":["https://openalex.org/I1292875679","https://openalex.org/I2801453606","https://openalex.org/I42894916","https://openalex.org/I4387156119"]},{"id":"https://openalex.org/I1292875679","display_name":"Commonwealth Scientific and Industrial Research Organisation","ror":"https://ror.org/03qn8fb07","country_code":"AU","type":"funder","lineage":["https://openalex.org/I1292875679","https://openalex.org/I2801453606","https://openalex.org/I4387156119"]}],"countries":["AU"],"is_corresponding":false,"raw_author_name":"Liming Zhu","raw_affiliation_strings":["CSIRO\u2019s Data61, Australia"],"affiliations":[{"raw_affiliation_string":"CSIRO\u2019s Data61, Australia","institution_ids":["https://openalex.org/I42894916","https://openalex.org/I1292875679"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":5,"corresponding_author_ids":["https://openalex.org/A5100715304"],"corresponding_institution_ids":["https://openalex.org/I118347636"],"apc_list":null,"apc_paid":null,"fwci":4.6566,"has_fulltext":false,"cited_by_count":34,"citation_normalized_percentile":{"value":0.96026682,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":100},"biblio":{"volume":null,"issue":null,"first_page":"696","last_page":"708"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9998999834060669,"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"}},"topics":[{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9998999834060669,"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9950000047683716,"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/T11241","display_name":"Advanced Malware Detection Techniques","score":0.9832000136375427,"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/code-refactoring","display_name":"Code refactoring","score":0.9681142568588257},{"id":"https://openalex.org/keywords/python","display_name":"Python (programming language)","score":0.9363774061203003},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.8290908932685852},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8091524839401245},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.6603045463562012},{"id":"https://openalex.org/keywords/rewriting","display_name":"Rewriting","score":0.4216606616973877},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.20368990302085876}],"concepts":[{"id":"https://openalex.org/C152752567","wikidata":"https://www.wikidata.org/wiki/Q116877","display_name":"Code refactoring","level":3,"score":0.9681142568588257},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.9363774061203003},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8290908932685852},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8091524839401245},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.6603045463562012},{"id":"https://openalex.org/C154690210","wikidata":"https://www.wikidata.org/wiki/Q1668499","display_name":"Rewriting","level":2,"score":0.4216606616973877},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.20368990302085876}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3540250.3549143","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3540250.3549143","pdf_url":null,"source":{"id":"https://openalex.org/S4363608883","display_name":"Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"conference"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[{"score":0.4099999964237213,"id":"https://metadata.un.org/sdg/4","display_name":"Quality Education"}],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":29,"referenced_works":["https://openalex.org/W562370556","https://openalex.org/W1565935466","https://openalex.org/W1976019354","https://openalex.org/W2040943118","https://openalex.org/W2087305857","https://openalex.org/W2099194364","https://openalex.org/W2103640219","https://openalex.org/W2104040631","https://openalex.org/W2116272605","https://openalex.org/W2153887189","https://openalex.org/W2475137645","https://openalex.org/W2605547445","https://openalex.org/W2620436109","https://openalex.org/W2795027827","https://openalex.org/W2802401630","https://openalex.org/W2898514735","https://openalex.org/W2999664051","https://openalex.org/W3002538883","https://openalex.org/W3043122026","https://openalex.org/W3049204076","https://openalex.org/W3098294082","https://openalex.org/W3191096151","https://openalex.org/W3193393431","https://openalex.org/W3217531701","https://openalex.org/W4200071154","https://openalex.org/W4234852849","https://openalex.org/W4249282491","https://openalex.org/W4313192880","https://openalex.org/W4387237501"],"related_works":["https://openalex.org/W4313549863","https://openalex.org/W4231266416","https://openalex.org/W2395465245","https://openalex.org/W2072205733","https://openalex.org/W3176957927","https://openalex.org/W4296534969","https://openalex.org/W4384009715","https://openalex.org/W4309804347","https://openalex.org/W2096877983","https://openalex.org/W1906486629"],"abstract_inverted_index":{"Compared":[0],"to":[1,11,52,108,152,167,184],"other":[2],"programming":[3],"languages":[4],"(e.g.,":[5],"Java),":[6],"Python":[7,13,26,28,62,70,110,126,169,202],"has":[8],"more":[9],"idioms":[10,20,46,78,117],"make":[12,109],"code":[14,71,93,111,138,155],"concise":[15],"and":[16,81,102,127,149,161,173,194],"efficient.":[17],"Although":[18],"pythonic":[19,45,77,116,141],"are":[21,30],"well":[22],"accepted":[23],"in":[24,36],"the":[25,121,132,179,190],"community,":[27],"programmers":[29],"often":[31],"faced":[32],"with":[33,76],"many":[34],"challenges":[35],"using":[37],"them,":[38],"for":[39,88,135,139,178],"example,":[40],"being":[41],"unaware":[42],"of":[43,60,125,196],"certain":[44],"or":[47],"do":[48],"not":[49],"know":[50],"how":[51],"use":[53],"them":[54],"properly.":[55],"Based":[56],"on":[57,64,200],"an":[58,104],"analysis":[59],"7,638":[61],"repositories":[63],"GitHub,":[65,172],"we":[66,100,130,144],"find":[67],"that":[68,72],"non-idiomatic":[69,92,137,154],"can":[73],"be":[74],"implemented":[75],"occurs":[79],"frequently":[80],"widely.":[82],"Unfortunately,":[83],"there":[84],"is":[85],"no":[86],"tool":[87,107,199],"automatically":[89],"refactoring":[90,106,150,198],"such":[91],"into":[94,156],"idiomatic":[95,157],"code.":[96,158,203],"In":[97],"this":[98],"paper,":[99],"design":[101],"implement":[103],"automatic":[105],"idiomatic.":[112],"We":[113,159],"identify":[114],"nine":[115],"by":[118],"systematically":[119],"contrasting":[120],"abstract":[122],"syntax":[123],"grammar":[124],"Java.":[128],"Then":[129],"define":[131],"syntactic":[133],"patterns":[134],"detecting":[136],"each":[140],"idiom.":[142],"Finally,":[143],"devise":[145],"atomic":[146],"AST-rewriting":[147],"operations":[148],"steps":[151],"refactor":[153],"test":[160],"review":[162],"over":[163],"4,115":[164],"refactorings":[165,183],"applied":[166],"1,065":[168],"projects":[170],"from":[171],"submit":[174],"90":[175,180],"pull":[176],"requests":[177],"randomly":[181],"sampled":[182],"84":[185],"projects.":[186],"These":[187],"evaluations":[188],"confirm":[189],"high":[191],"accuracy,":[192],"practicality":[193],"usefulness":[195],"our":[197],"real-world":[201]},"counts_by_year":[{"year":2026,"cited_by_count":2},{"year":2025,"cited_by_count":10},{"year":2024,"cited_by_count":14},{"year":2023,"cited_by_count":7},{"year":2022,"cited_by_count":1}],"updated_date":"2026-02-25T23:00:34.991745","created_date":"2025-10-10T00:00:00"}
