{"id":"https://openalex.org/W4394769377","doi":"https://doi.org/10.1145/3597503.3640325","title":"PyAnalyzer: An Effective and Practical Approach for Dependency Extraction from Python Code","display_name":"PyAnalyzer: An Effective and Practical Approach for Dependency Extraction from Python Code","publication_year":2024,"publication_date":"2024-04-12","ids":{"openalex":"https://openalex.org/W4394769377","doi":"https://doi.org/10.1145/3597503.3640325"},"language":"en","primary_location":{"id":"doi:10.1145/3597503.3640325","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3597503.3640325","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the IEEE/ACM 46th International Conference on 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/A5041389585","display_name":"Wuxia Jin","orcid":"https://orcid.org/0000-0002-9137-4635"},"institutions":[{"id":"https://openalex.org/I87445476","display_name":"Xi'an Jiaotong University","ror":"https://ror.org/017zhmm22","country_code":"CN","type":"education","lineage":["https://openalex.org/I87445476"]}],"countries":["CN"],"is_corresponding":true,"raw_author_name":"Wuxia Jin","raw_affiliation_strings":["The School of Software Engineering, Xi'an Jiaotong University, Xi'an, China"],"affiliations":[{"raw_affiliation_string":"The School of Software Engineering, Xi'an Jiaotong University, Xi'an, China","institution_ids":["https://openalex.org/I87445476"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5004486920","display_name":"S. S. Xu","orcid":"https://orcid.org/0009-0005-6856-5213"},"institutions":[{"id":"https://openalex.org/I87445476","display_name":"Xi'an Jiaotong University","ror":"https://ror.org/017zhmm22","country_code":"CN","type":"education","lineage":["https://openalex.org/I87445476"]}],"countries":["CN"],"is_corresponding":false,"raw_author_name":"Shuo Xu","raw_affiliation_strings":["Xi'an jiaotong university, Shaanxi, China"],"affiliations":[{"raw_affiliation_string":"Xi'an jiaotong university, Shaanxi, China","institution_ids":["https://openalex.org/I87445476"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5073977367","display_name":"D. Chen","orcid":null},"institutions":[{"id":"https://openalex.org/I87445476","display_name":"Xi'an Jiaotong University","ror":"https://ror.org/017zhmm22","country_code":"CN","type":"education","lineage":["https://openalex.org/I87445476"]}],"countries":["CN"],"is_corresponding":false,"raw_author_name":"Dawei Chen","raw_affiliation_strings":["Xi'an Jiaotong University, Shaanxi, China"],"affiliations":[{"raw_affiliation_string":"Xi'an Jiaotong University, Shaanxi, China","institution_ids":["https://openalex.org/I87445476"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5082567382","display_name":"Jiaojiao He","orcid":"https://orcid.org/0009-0003-2750-5527"},"institutions":[{"id":"https://openalex.org/I87445476","display_name":"Xi'an Jiaotong University","ror":"https://ror.org/017zhmm22","country_code":"CN","type":"education","lineage":["https://openalex.org/I87445476"]}],"countries":["CN"],"is_corresponding":false,"raw_author_name":"Jiajun He","raw_affiliation_strings":["Xi'an jiaotong university, Shaanxi, China"],"affiliations":[{"raw_affiliation_string":"Xi'an jiaotong university, Shaanxi, China","institution_ids":["https://openalex.org/I87445476"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5066466442","display_name":"Dinghong Zhong","orcid":"https://orcid.org/0009-0005-6280-1692"},"institutions":[{"id":"https://openalex.org/I87445476","display_name":"Xi'an Jiaotong University","ror":"https://ror.org/017zhmm22","country_code":"CN","type":"education","lineage":["https://openalex.org/I87445476"]}],"countries":["CN"],"is_corresponding":false,"raw_author_name":"Dinghong Zhong","raw_affiliation_strings":["Xi'an jiaotong university, Shaanxi, China"],"affiliations":[{"raw_affiliation_string":"Xi'an jiaotong university, Shaanxi, China","institution_ids":["https://openalex.org/I87445476"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5100692958","display_name":"Ming Fan","orcid":"https://orcid.org/0000-0002-9327-0987"},"institutions":[{"id":"https://openalex.org/I87445476","display_name":"Xi'an Jiaotong University","ror":"https://ror.org/017zhmm22","country_code":"CN","type":"education","lineage":["https://openalex.org/I87445476"]}],"countries":["CN"],"is_corresponding":false,"raw_author_name":"Ming Fan","raw_affiliation_strings":["Xi'an Jiaotong University, Shaanxi, China"],"affiliations":[{"raw_affiliation_string":"Xi'an Jiaotong University, Shaanxi, China","institution_ids":["https://openalex.org/I87445476"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5107243315","display_name":"Hongxu Chen","orcid":"https://orcid.org/0000-0001-7983-2544"},"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":"Hongxu Chen","raw_affiliation_strings":["Huawei Technologies Co., Ltd, Shenzhen, China"],"affiliations":[{"raw_affiliation_string":"Huawei Technologies Co., Ltd, Shenzhen, China","institution_ids":["https://openalex.org/I2250955327"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5043460329","display_name":"Huijia Zhang","orcid":"https://orcid.org/0009-0001-5838-2094"},"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":"Huijia Zhang","raw_affiliation_strings":["Huawei Technologies Co Ltd, Shenzhen, China"],"affiliations":[{"raw_affiliation_string":"Huawei Technologies Co Ltd, Shenzhen, China","institution_ids":["https://openalex.org/I2250955327"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5101554099","display_name":"Ting Liu","orcid":"https://orcid.org/0000-0002-7600-0934"},"institutions":[{"id":"https://openalex.org/I87445476","display_name":"Xi'an Jiaotong University","ror":"https://ror.org/017zhmm22","country_code":"CN","type":"education","lineage":["https://openalex.org/I87445476"]}],"countries":["CN"],"is_corresponding":false,"raw_author_name":"Ting Liu","raw_affiliation_strings":["Xi'an Jiaotong University, Shaanxi, China"],"affiliations":[{"raw_affiliation_string":"Xi'an Jiaotong University, Shaanxi, China","institution_ids":["https://openalex.org/I87445476"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":9,"corresponding_author_ids":["https://openalex.org/A5041389585"],"corresponding_institution_ids":["https://openalex.org/I87445476"],"apc_list":null,"apc_paid":null,"fwci":3.2474,"has_fulltext":false,"cited_by_count":4,"citation_normalized_percentile":{"value":0.92488227,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":94,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"1","last_page":"12"},"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.975600004196167,"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/T12127","display_name":"Software System Performance and Reliability","score":0.9703999757766724,"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.8607689142227173},{"id":"https://openalex.org/keywords/python","display_name":"Python (programming language)","score":0.6805633306503296},{"id":"https://openalex.org/keywords/nondeterministic-algorithm","display_name":"Nondeterministic algorithm","score":0.6721896529197693},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.531550407409668},{"id":"https://openalex.org/keywords/scripting-language","display_name":"Scripting language","score":0.5155527591705322},{"id":"https://openalex.org/keywords/dependency","display_name":"Dependency (UML)","score":0.4861440360546112},{"id":"https://openalex.org/keywords/heap","display_name":"Heap (data structure)","score":0.4662806987762451},{"id":"https://openalex.org/keywords/class-hierarchy","display_name":"Class hierarchy","score":0.4490177035331726},{"id":"https://openalex.org/keywords/operand","display_name":"Operand","score":0.4349665641784668},{"id":"https://openalex.org/keywords/allocator","display_name":"Allocator","score":0.4121860861778259},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3974246680736542},{"id":"https://openalex.org/keywords/object-oriented-programming","display_name":"Object-oriented programming","score":0.36014705896377563},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.2593870162963867},{"id":"https://openalex.org/keywords/distributed-computing","display_name":"Distributed computing","score":0.25705379247665405},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.11694833636283875}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8607689142227173},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.6805633306503296},{"id":"https://openalex.org/C176181172","wikidata":"https://www.wikidata.org/wiki/Q3490301","display_name":"Nondeterministic algorithm","level":2,"score":0.6721896529197693},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.531550407409668},{"id":"https://openalex.org/C61423126","wikidata":"https://www.wikidata.org/wiki/Q187432","display_name":"Scripting language","level":2,"score":0.5155527591705322},{"id":"https://openalex.org/C19768560","wikidata":"https://www.wikidata.org/wiki/Q320727","display_name":"Dependency (UML)","level":2,"score":0.4861440360546112},{"id":"https://openalex.org/C134757568","wikidata":"https://www.wikidata.org/wiki/Q274089","display_name":"Heap (data structure)","level":2,"score":0.4662806987762451},{"id":"https://openalex.org/C2781289151","wikidata":"https://www.wikidata.org/wiki/Q2903989","display_name":"Class hierarchy","level":3,"score":0.4490177035331726},{"id":"https://openalex.org/C55526617","wikidata":"https://www.wikidata.org/wiki/Q719375","display_name":"Operand","level":2,"score":0.4349665641784668},{"id":"https://openalex.org/C162262903","wikidata":"https://www.wikidata.org/wiki/Q343527","display_name":"Allocator","level":2,"score":0.4121860861778259},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3974246680736542},{"id":"https://openalex.org/C73752529","wikidata":"https://www.wikidata.org/wiki/Q79872","display_name":"Object-oriented programming","level":2,"score":0.36014705896377563},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.2593870162963867},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.25705379247665405},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.11694833636283875}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3597503.3640325","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3597503.3640325","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the IEEE/ACM 46th International Conference on Software Engineering","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":42,"referenced_works":["https://openalex.org/W1536098516","https://openalex.org/W2018951244","https://openalex.org/W2067872353","https://openalex.org/W2105300539","https://openalex.org/W2132089926","https://openalex.org/W2137030454","https://openalex.org/W2171971095","https://openalex.org/W2572394326","https://openalex.org/W2747329762","https://openalex.org/W2751157751","https://openalex.org/W2791942415","https://openalex.org/W2888334439","https://openalex.org/W2915514522","https://openalex.org/W2941318293","https://openalex.org/W2954933423","https://openalex.org/W2954950681","https://openalex.org/W2955230520","https://openalex.org/W2962823786","https://openalex.org/W3010152267","https://openalex.org/W3018033251","https://openalex.org/W3043236449","https://openalex.org/W3046890777","https://openalex.org/W3100869085","https://openalex.org/W3105735055","https://openalex.org/W3108348169","https://openalex.org/W3126095862","https://openalex.org/W3161685529","https://openalex.org/W3163546604","https://openalex.org/W3187000578","https://openalex.org/W3207476902","https://openalex.org/W4205712307","https://openalex.org/W4206770190","https://openalex.org/W4211087596","https://openalex.org/W4226082220","https://openalex.org/W4255249960","https://openalex.org/W4283800939","https://openalex.org/W4284685949","https://openalex.org/W4284687350","https://openalex.org/W4296280788","https://openalex.org/W4308643019","https://openalex.org/W4379533994","https://openalex.org/W4384345637"],"related_works":["https://openalex.org/W2920417665","https://openalex.org/W4379518516","https://openalex.org/W3033802101","https://openalex.org/W2766468145","https://openalex.org/W92825922","https://openalex.org/W3104774169","https://openalex.org/W2486766535","https://openalex.org/W2944895246","https://openalex.org/W2515904313","https://openalex.org/W4379141974"],"abstract_inverted_index":{"Dependency":[0],"extraction":[1],"based":[2],"on":[3,146,197],"static":[4,33],"analysis":[5],"lays":[6],"the":[7,66,97,193],"groundwork":[8],"for":[9,32,69,82,165],"a":[10,135,187],"wide":[11],"range":[12],"of":[13,100,207],"applications.":[14,216],"However,":[15],"dynamic":[16,70,98,110],"language":[17],"features":[18,111],"in":[19,121],"Python":[20],"make":[21],"code":[22],"behaviors":[23],"obscure":[24],"and":[25,42,61,77,90,103,117,142,160,179,190],"nondeterministic;":[26],"consequently,":[27],"it":[28],"poses":[29],"huge":[30],"challenges":[31],"analyses":[34],"to":[35,52,137],"resolve":[36,143],"symbol-level":[37],"dependencies.":[38,63],"Although":[39],"prosperous":[40],"techniques":[41,171],"tools":[43],"are":[44],"adequately":[45],"available,":[46],"they":[47],"still":[48],"lack":[49],"sufficient":[50],"capabilities":[51],"handle":[53],"object":[54,115],"changes,":[55,116],"first-class":[56,93,118],"citizens,":[57,119],"varying":[58,139],"call":[59,140],"sites,":[60],"library":[62,144],"To":[64],"address":[65],"fundamental":[67],"difficulty":[68],"languages,":[71],"this":[72],"work":[73,211],"proposes":[74],"an":[75,204],"effective":[76],"practical":[78],"method":[79],"namely":[80],"PyAnalyzer":[81,85,129,185],"dependency":[83],"extraction.":[84],"uniformly":[86],"models":[87],"functions,":[88],"classes,":[89],"modules":[91],"into":[92],"heap":[94],"objects,":[95],"propagating":[96],"changes":[99],"these":[101],"objects":[102],"class":[104],"inheritance.":[105],"This":[106],"manner":[107],"better":[108],"simulates":[109],"like":[112],"duck":[113],"typing,":[114],"resulting":[120],"high":[122,188],"recall":[123,189],"results":[124,182],"without":[125,203],"compromising":[126],"precision.":[127],"Moreover,":[128],"leverages":[130],"optional":[131],"type":[132],"annotations":[133],"as":[134],"shortcut":[136],"express":[138],"sites":[141],"dependencies":[145],"demand.":[147],"We":[148],"collected":[149],"two":[150,155],"micro-benchmarks":[151],"(278":[152],"small":[153],"programs),":[154],"macro-benchmarks":[156],"(59":[157],"real-world":[158,162],"applications),":[159],"191":[161],"projects":[163],"(10MSLOC)":[164],"comprehensive":[166],"comparisons":[167],"with":[168],"7":[169],"advanced":[170],"(i.e.,":[172],"Understand,":[173],"Sourcetrail,":[174],"Depends,":[175],"ENRE19,":[176],"PySonar2,":[177],"PyCG,":[178],"Type4Py).":[180],"The":[181],"demonstrated":[183],"that":[184],"achieves":[186],"hence":[191],"improves":[192],"F1":[194],"by":[195],"24.7%":[196],"average,":[198],"at":[199],"least":[200],"1.4x":[201],"faster":[202],"obvious":[205],"compromise":[206],"memory":[208],"efficiency.":[209],"Our":[210],"will":[212],"benefit":[213],"diverse":[214],"client":[215]},"counts_by_year":[{"year":2025,"cited_by_count":2},{"year":2024,"cited_by_count":2}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
