{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,8]],"date-time":"2026-03-08T02:50:53Z","timestamp":1772938253276,"version":"3.50.1"},"reference-count":52,"publisher":"World Scientific Pub Co Pte Ltd","issue":"07","funder":[{"DOI":"10.13039\/501100001809","name":"National Natural Science Foundation of China","doi-asserted-by":"crossref","award":["62272221"],"award-info":[{"award-number":["62272221"]}],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"crossref"}]},{"name":"Cooperation Fund of Nanjing University-Huawei Novel Software Technology Lab","award":["TC20230202021-2023-10"],"award-info":[{"award-number":["TC20230202021-2023-10"]}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Int. J. Soft. Eng. Knowl. Eng."],"published-print":{"date-parts":[[2024,7]]},"abstract":"<jats:p> Call graphs facilitate various tasks in software engineering. However, for the dynamic language Python, the complex language features and external library dependencies pose enormous challenges for building the call graphs of real projects. Some program analysis techniques used for call graph construction in other languages are impractical for Python. In this paper, we present STAR, a practical technique for the construction of Python static call graphs. We reformulate call graph construction as an entity identification task. STAR leverages inter-module summary and cross-project dependencies to construct a fine-grained entity knowledge base to identify the possible nodes and edges of the call graph in the code, and then construct the call graph. Our evaluation of three benchmarks shows that (1) STAR improves recall in three benchmarks compared to three baseline tools. Especially, STAR improves the recall of reachable nodes and reachable edges compared with the state-of-the-art tool by 11.3% and 9.8%, respectively; (2) STAR achieves comparable performance as three baseline tools in execution time and memory usage and is more efficient in large projects; (3) STAR can be effectively used for the task of detecting vulnerability propagation with real-world cases. We expect our results will attract more exploration of practical methods and improve the application of Python call graphs. <\/jats:p>","DOI":"10.1142\/s0218194024500104","type":"journal-article","created":{"date-parts":[[2024,3,22]],"date-time":"2024-03-22T09:50:36Z","timestamp":1711101036000},"page":"999-1024","source":"Crossref","is-referenced-by-count":2,"title":["Efficient Construction of Practical Python Call Graphs with Entity Knowledge Base"],"prefix":"10.1142","volume":"34","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-6623-1165","authenticated-orcid":false,"given":"Yulu","family":"Cao","sequence":"first","affiliation":[{"name":"State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing, Jiangsu, P. R. China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2352-2226","authenticated-orcid":false,"given":"Lin","family":"Chen","sequence":"additional","affiliation":[{"name":"State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing, Jiangsu, P. R. China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3475-6979","authenticated-orcid":false,"given":"Zhifei","family":"Chen","sequence":"additional","affiliation":[{"name":"School of Computer Science and Engineering, Nanjing University of Science and Technology, Nanjing, Jiangsu, P. R. China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3050-7569","authenticated-orcid":false,"given":"Jiacheng","family":"Zhong","sequence":"additional","affiliation":[{"name":"State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing, Jiangsu, P. R. China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1481-5158","authenticated-orcid":false,"given":"Xiaowei","family":"Zhang","sequence":"additional","affiliation":[{"name":"State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing, Jiangsu, P. R. China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4794-1652","authenticated-orcid":false,"given":"Linzhang","family":"Wang","sequence":"additional","affiliation":[{"name":"State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing, Jiangsu, P. R. China"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"219","published-online":{"date-parts":[[2024,5,22]]},"reference":[{"key":"S0218194024500104BIB001","volume-title":"Modularity in Development and Evolution","author":"Schlosser G.","year":"2004"},{"key":"S0218194024500104BIB002","doi-asserted-by":"publisher","DOI":"10.1145\/3183399.3183417"},{"key":"S0218194024500104BIB003","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3314648"},{"key":"S0218194024500104BIB004","doi-asserted-by":"publisher","DOI":"10.1109\/SANER48275.2020.9054800"},{"key":"S0218194024500104BIB005","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2021.111097"},{"key":"S0218194024500104BIB006","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2019.2901459"},{"key":"S0218194024500104BIB007","doi-asserted-by":"publisher","DOI":"10.1145\/3368089.3409735"},{"key":"S0218194024500104BIB008","doi-asserted-by":"publisher","DOI":"10.1109\/ASE51524.2021.9678889"},{"key":"S0218194024500104BIB009","doi-asserted-by":"publisher","DOI":"10.1109\/SP40001.2021.00090"},{"key":"S0218194024500104BIB010","doi-asserted-by":"publisher","DOI":"10.1109\/SANER53432.2022.00110"},{"key":"S0218194024500104BIB011","doi-asserted-by":"publisher","DOI":"10.1145\/1806596.1806598"},{"key":"S0218194024500104BIB012","doi-asserted-by":"publisher","DOI":"10.1145\/2597073.2597103"},{"key":"S0218194024500104BIB013","doi-asserted-by":"publisher","DOI":"10.1109\/SANER50967.2021.00012"},{"key":"S0218194024500104BIB014","doi-asserted-by":"publisher","DOI":"10.1145\/3524842.3528467"},{"key":"S0218194024500104BIB015","doi-asserted-by":"publisher","DOI":"10.1145\/3453478"},{"key":"S0218194024500104BIB016","doi-asserted-by":"publisher","DOI":"10.1145\/3338906.3338955"},{"key":"S0218194024500104BIB019","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE43902.2021.00146"},{"key":"S0218194024500104BIB020","doi-asserted-by":"publisher","DOI":"10.1109\/ICCQ51190.2021.9392986"},{"key":"S0218194024500104BIB021","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2019.00160"},{"key":"S0218194024500104BIB022","doi-asserted-by":"publisher","DOI":"10.1145\/3540250.3559077"},{"key":"S0218194024500104BIB023","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE-Companion.2019.00040"},{"key":"S0218194024500104BIB024","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2014.04.011"},{"key":"S0218194024500104BIB026","doi-asserted-by":"publisher","DOI":"10.1145\/263700.264352"},{"key":"S0218194024500104BIB027","doi-asserted-by":"publisher","DOI":"10.1145\/236338.236371"},{"key":"S0218194024500104BIB028","doi-asserted-by":"publisher","DOI":"10.1145\/3460319.3464836"},{"key":"S0218194024500104BIB029","doi-asserted-by":"publisher","DOI":"10.1145\/2635868.2635928"},{"key":"S0218194024500104BIB030","doi-asserted-by":"publisher","DOI":"10.1145\/2858965.2814272"},{"key":"S0218194024500104BIB031","doi-asserted-by":"publisher","DOI":"10.1145\/2950290.2950312"},{"key":"S0218194024500104BIB032","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31057-7_30"},{"key":"S0218194024500104BIB033","doi-asserted-by":"publisher","DOI":"10.1145\/3510003.3510166"},{"key":"S0218194024500104BIB035","doi-asserted-by":"publisher","DOI":"10.1145\/3377811.3380441"},{"key":"S0218194024500104BIB036","volume-title":"36th European Conf. Object-Oriented Programming","author":"Chakraborty M.","year":"2022"},{"key":"S0218194024500104BIB037","author":"Ali K.","year":"2019","journal-title":"IEEE Trans. Softw. Eng."},{"key":"S0218194024500104BIB038","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2013.6606621"},{"key":"S0218194024500104BIB039","doi-asserted-by":"publisher","DOI":"10.1145\/3238147.3240484"},{"key":"S0218194024500104BIB040","doi-asserted-by":"publisher","DOI":"10.1109\/BigData.2018.8622426"},{"key":"S0218194024500104BIB041","doi-asserted-by":"publisher","DOI":"10.1145\/3540250.3549126"},{"key":"S0218194024500104BIB042","doi-asserted-by":"publisher","DOI":"10.1145\/3133926"},{"key":"S0218194024500104BIB043","doi-asserted-by":"publisher","DOI":"10.1145\/3213846.3213860"},{"key":"S0218194024500104BIB044","doi-asserted-by":"publisher","DOI":"10.1145\/3387904.3389253"},{"key":"S0218194024500104BIB045","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2021.3082068"},{"key":"S0218194024500104BIB046","doi-asserted-by":"publisher","DOI":"10.1145\/2950290.2950343"},{"key":"S0218194024500104BIB047","doi-asserted-by":"publisher","DOI":"10.1145\/3510003.3510038"},{"key":"S0218194024500104BIB050","doi-asserted-by":"publisher","DOI":"10.1145\/3540250.3549130"},{"key":"S0218194024500104BIB051","doi-asserted-by":"publisher","DOI":"10.1145\/3324884.3416619"},{"key":"S0218194024500104BIB053","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2019.00047"},{"key":"S0218194024500104BIB055","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE43902.2021.00144"},{"key":"S0218194024500104BIB056","volume-title":"2017 IEEE\/ACM 25th Int. Conf. Program Comprehension","author":"Milojkovic N.","year":"2017"},{"key":"S0218194024500104BIB060","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE48619.2023.00095"},{"key":"S0218194024500104BIB061","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2017.2653105"},{"key":"S0218194024500104BIB062","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2022.3191353"},{"key":"S0218194024500104BIB064","doi-asserted-by":"publisher","DOI":"10.1145\/3468264.3468556"}],"container-title":["International Journal of Software Engineering and Knowledge Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.worldscientific.com\/doi\/pdf\/10.1142\/S0218194024500104","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,7,30]],"date-time":"2024-07-30T01:59:19Z","timestamp":1722304759000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.worldscientific.com\/doi\/10.1142\/S0218194024500104"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,5,22]]},"references-count":52,"journal-issue":{"issue":"07","published-print":{"date-parts":[[2024,7]]}},"alternative-id":["10.1142\/S0218194024500104"],"URL":"https:\/\/doi.org\/10.1142\/s0218194024500104","relation":{},"ISSN":["0218-1940","1793-6403"],"issn-type":[{"value":"0218-1940","type":"print"},{"value":"1793-6403","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024,5,22]]}}}