{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,12]],"date-time":"2026-06-12T07:11:26Z","timestamp":1781248286854,"version":"3.54.1"},"publisher-location":"New York, NY, USA","reference-count":53,"publisher":"ACM","license":[{"start":{"date-parts":[[2022,11,7]],"date-time":"2022-11-07T00:00:00Z","timestamp":1667779200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"ERC","award":["851895"],"award-info":[{"award-number":["851895"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2022,11,7]]},"DOI":"10.1145\/3540250.3549114","type":"proceedings-article","created":{"date-parts":[[2022,11,9]],"date-time":"2022-11-09T20:46:22Z","timestamp":1668026782000},"page":"209-220","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":23,"title":["The evolution of type annotations in python: an empirical study"],"prefix":"10.1145","author":[{"given":"Luca","family":"Di Grazia","sequence":"first","affiliation":[{"name":"University of Stuttgart, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Michael","family":"Pradel","sequence":"additional","affiliation":[{"name":"University of Stuttgart, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2022,11,9]]},"reference":[{"key":"e_1_3_2_1_1_1","volume-title":"Typilus: Neural Type Hints. In PLDI.","author":"Allamanis Miltiadis","year":"2020","unstructured":"Miltiadis Allamanis , Earl T. Barr , Soline Ducousso , and Zheng Gao . 2020 . Typilus: Neural Type Hints. In PLDI. Miltiadis Allamanis, Earl T. Barr, Soline Ducousso, and Zheng Gao. 2020. Typilus: Neural Type Hints. In PLDI."},{"key":"e_1_3_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926385.1926437"},{"key":"e_1_3_2_1_3_1","volume-title":"Towards Type Inference for JavaScript. In ECOOP 2005 - Object-Oriented Programming, Andrew P. Black (Ed.). Springer Berlin Heidelberg","author":"Anderson Christopher","year":"2005","unstructured":"Christopher Anderson , Paola Giannini , and Sophia Drossopoulou . 2005 . Towards Type Inference for JavaScript. In ECOOP 2005 - Object-Oriented Programming, Andrew P. Black (Ed.). Springer Berlin Heidelberg , Berlin, Heidelberg. 428\u2013452. isbn:978-3-540-31725-8 Christopher Anderson, Paola Giannini, and Sophia Drossopoulou. 2005. Towards Type Inference for JavaScript. In ECOOP 2005 - Object-Oriented Programming, Andrew P. Black (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg. 428\u2013452. isbn:978-3-540-31725-8"},{"key":"e_1_3_2_1_4_1","doi-asserted-by":"crossref","unstructured":"Justus Bogner and Manuel Merkel. 2022. To Type or Not to Type? A Systematic Comparison of the Software Quality of JavaScript and TypeScript Applications on GitHub. arXiv preprint arXiv:2203.11115. \t\t\t\t  Justus Bogner and Manuel Merkel. 2022. To Type or Not to Type? A Systematic Comparison of the Software Quality of JavaScript and TypeScript Applications on GitHub. arXiv preprint arXiv:2203.11115.","DOI":"10.1145\/3524842.3528454"},{"key":"e_1_3_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/COMPSAC.2009.149"},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2000799.2000805"},{"key":"e_1_3_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/3211346.3211349"},{"key":"e_1_3_2_1_8_1","doi-asserted-by":"crossref","unstructured":"Aryaz Eghbali and Michael Pradel. 2022. DynaPyt: A Dynamic Analysis Framework for Python. In FSE. \t\t\t\t  Aryaz Eghbali and Michael Pradel. 2022. DynaPyt: A Dynamic Analysis Framework for Python. In FSE.","DOI":"10.1145\/3540250.3549126"},{"key":"e_1_3_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2642937.2642982"},{"key":"e_1_3_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2007.70731"},{"key":"e_1_3_2_1_11_1","volume-title":"Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). ACM, 283\u2013300","author":"Furr Michael","unstructured":"Michael Furr , Jong-hoon (David) An, and Jeffrey S. Foster . 2009. Profile-guided static typing for dynamic scripting languages . In Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). ACM, 283\u2013300 . Michael Furr, Jong-hoon (David) An, and Jeffrey S. Foster. 2009. Profile-guided static typing for dynamic scripting languages. In Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). ACM, 283\u2013300."},{"key":"e_1_3_2_1_12_1","volume-title":"Proceedings of the 39th International Conference on Software Engineering, ICSE 2017","author":"Gao Zheng","year":"2017","unstructured":"Zheng Gao , Christian Bird , and Earl T. Barr . 2017. To type or not to type: Quantifying detectable bugs in JavaScript . In Proceedings of the 39th International Conference on Software Engineering, ICSE 2017 , Buenos Aires, Argentina , May 20-28, 2017 . 758\u2013769. Zheng Gao, Christian Bird, and Earl T. Barr. 2017. To type or not to type: Quantifying detectable bugs in JavaScript. In Proceedings of the 39th International Conference on Software Engineering, ICSE 2017, Buenos Aires, Argentina, May 20-28, 2017. 758\u2013769."},{"key":"e_1_3_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1985441.1985456"},{"key":"e_1_3_2_1_14_1","volume-title":"DiffSearch: A Scalable and Precise Search Engine for Code Changes. CoRR, abs\/2204.02787","author":"Grazia Luca Di","year":"2022","unstructured":"Luca Di Grazia , Paul Bredl , and Michael Pradel . 2022. DiffSearch: A Scalable and Precise Search Engine for Code Changes. CoRR, abs\/2204.02787 ( 2022 ), https:\/\/doi.org\/10.48550\/arXiv.2204.02787 arXiv:2204.02787. 10.48550\/arXiv.2204.02787 Luca Di Grazia, Paul Bredl, and Michael Pradel. 2022. DiffSearch: A Scalable and Precise Search Engine for Code Changes. CoRR, abs\/2204.02787 (2022), https:\/\/doi.org\/10.48550\/arXiv.2204.02787 arXiv:2204.02787."},{"key":"e_1_3_2_1_15_1","volume-title":"Nicholas Bradley, Braxton Hall, and Reid Holmes.","author":"Grund Felix","year":"2021","unstructured":"Felix Grund , Shaiful Alam Chowdhury , Nicholas Bradley, Braxton Hall, and Reid Holmes. 2021 . CodeShovel: Constructing Method-Level Source Code Histories. In ICSE. Felix Grund, Shaiful Alam Chowdhury, Nicholas Bradley, Braxton Hall, and Reid Holmes. 2021. CodeShovel: Constructing Method-Level Source Code Histories. In ICSE."},{"key":"e_1_3_2_1_16_1","doi-asserted-by":"crossref","unstructured":"Rui Gu Guoliang Jin Linhai Song Linjie Zhu and Shan Lu. 2015. What change history tells us about thread synchronization. In ESEC\/FSE. 426\u2013438. \t\t\t\t  Rui Gu Guoliang Jin Linhai Song Linjie Zhu and Shan Lu. 2015. What change history tells us about thread synchronization. In ESEC\/FSE. 426\u2013438.","DOI":"10.1145\/2786805.2786815"},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/1869459.1869462"},{"key":"e_1_3_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/1869459.1869462"},{"key":"e_1_3_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-013-9289-1"},{"key":"e_1_3_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/WCRE.2008.44"},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/3236024.3236047"},{"key":"e_1_3_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-96142-2_2"},{"key":"e_1_3_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3236024.3236051"},{"key":"e_1_3_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/MSR.2019.00016"},{"key":"e_1_3_2_1_25_1","volume-title":"Type Analysis for JavaScript. In Symposium on Static Analysis (SAS). Springer, 238\u2013255","author":"Jensen Simon Holm","year":"2009","unstructured":"Simon Holm Jensen , Anders M\u00f8ller , and Peter Thiemann . 2009 . Type Analysis for JavaScript. In Symposium on Static Analysis (SAS). Springer, 238\u2013255 . Simon Holm Jensen, Anders M\u00f8ller, and Peter Thiemann. 2009. Type Analysis for JavaScript. In Symposium on Static Analysis (SAS). Springer, 238\u2013255."},{"key":"e_1_3_2_1_26_1","doi-asserted-by":"crossref","unstructured":"Wuxia Jin Dinghong Zhong Zifan Ding Ming Fan and Ting Liu. 2021. Where to Start: Studying Type Annotation Practices in Python. In ASE. \t\t\t\t  Wuxia Jin Dinghong Zhong Zifan Ding Ming Fan and Ting Liu. 2021. Where to Start: Studying Type Annotation Practices in Python. In ASE.","DOI":"10.1109\/ASE51524.2021.9678947"},{"key":"e_1_3_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/3368089.3409725"},{"key":"e_1_3_2_1_28_1","article-title":"An Empirical Study of Type-Related Defects in Python Projects","author":"Khan Faizan","year":"2021","unstructured":"Faizan Khan , Boqi Chen , Daniel Varro , and Shane Mcintosh . 2021 . An Empirical Study of Type-Related Defects in Python Projects . IEEE Transactions on Software Engineering. Faizan Khan, Boqi Chen, Daniel Varro, and Shane Mcintosh. 2021. An Empirical Study of Type-Related Defects in Python Projects. IEEE Transactions on Software Engineering.","journal-title":"IEEE Transactions on Software Engineering."},{"key":"e_1_3_2_1_29_1","volume-title":"Prequel: A Patch-Like Query Language for Commit History Search.","author":"Lawall Julia","year":"2016","unstructured":"Julia Lawall , Quentin Lambert , and Gilles Muller . 2016 . Prequel: A Patch-Like Query Language for Commit History Search. Julia Lawall, Quentin Lambert, and Gilles Muller. 2016. Prequel: A Patch-Like Query Language for Commit History Search."},{"key":"e_1_3_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2019.00045"},{"key":"e_1_3_2_1_31_1","volume-title":"McKinley","author":"Meng Na","year":"2011","unstructured":"Na Meng , Miryung Kim , and Kathryn S . McKinley . 2011 . Systematic editing: generating program transformations from an example.. In PLDI. 329\u2013342. Na Meng, Miryung Kim, and Kathryn S. McKinley. 2011. Systematic editing: generating program transformations from an example.. In PLDI. 329\u2013342."},{"key":"e_1_3_2_1_32_1","volume-title":"McKinley","author":"Meng Na","year":"2013","unstructured":"Na Meng , Miryung Kim , and Kathryn S . McKinley . 2013 . LASE: locating and applying systematic edits by learning from examples.. In ICSE. 502\u2013511. Na Meng, Miryung Kim, and Kathryn S. McKinley. 2013. LASE: locating and applying systematic edits by learning from examples.. In ICSE. 502\u2013511."},{"key":"e_1_3_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/2491411.2491416"},{"key":"e_1_3_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/3238147.3238173"},{"key":"e_1_3_2_1_35_1","first-page":"1","article-title":"Towards a static type checker for python. In European Conference on Object-Oriented Programming (ECOOP), Scripts to Programs Workshop","volume":"15","author":"Ortin Francisco","year":"2015","unstructured":"Francisco Ortin , Jose Baltasar Garcia Perez-Schofield , and Jose Manuel Redondo . 2015 . Towards a static type checker for python. In European Conference on Object-Oriented Programming (ECOOP), Scripts to Programs Workshop , STOP. 15 , 1 \u2013 2 . Francisco Ortin, Jose Baltasar Garcia Perez-Schofield, and Jose Manuel Redondo. 2015. Towards a static type checker for python. In European Conference on Object-Oriented Programming (ECOOP), Scripts to Programs Workshop, STOP. 15, 1\u20132.","journal-title":"STOP."},{"key":"e_1_3_2_1_36_1","volume-title":"Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2018","author":"Paletov Rumen","year":"2018","unstructured":"Rumen Paletov , Petar Tsankov , Veselin Raychev , and Martin T. Vechev . 2018. Inferring crypto API rules from code changes . In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2018 , Philadelphia, PA, USA , June 18-22, 2018 . 450\u2013464. Rumen Paletov, Petar Tsankov, Veselin Raychev, and Martin T. Vechev. 2018. Inferring crypto API rules from code changes. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2018, Philadelphia, PA, USA, June 18-22, 2018. 450\u2013464."},{"key":"e_1_3_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/3510003.3510144"},{"key":"e_1_3_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/3368089.3409715"},{"key":"e_1_3_2_1_39_1","unstructured":"Ingkarat Rak-amnouykit Daniel McCrevan Ana Milanova Martin Hirzel and Julian Dolby. [n.d.]. Python 3 Types in the Wild: A Tale of Two Type Systems. \t\t\t\t  Ingkarat Rak-amnouykit Daniel McCrevan Ana Milanova Martin Hirzel and Julian Dolby. [n.d.]. Python 3 Types in the Wild: A Tale of Two Type Systems."},{"key":"e_1_3_2_1_40_1","doi-asserted-by":"crossref","unstructured":"Veselin Raychev Martin T. Vechev and Andreas Krause. 2015. Predicting Program Properties from \"Big Code\".. In Principles of Programming Languages (POPL). 111\u2013124. \t\t\t\t  Veselin Raychev Martin T. Vechev and Andreas Krause. 2015. Predicting Program Properties from \"Big Code\".. In Principles of Programming Languages (POPL). 111\u2013124.","DOI":"10.1145\/2775051.2677009"},{"key":"e_1_3_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/2480362.2480655"},{"key":"e_1_3_2_1_42_1","volume-title":"The Eval That Men Do - A Large-Scale Study of the Use of Eval in JavaScript Applications. In European Conference on Object-Oriented Programming (ECOOP). 52\u201378","author":"Richards Gregor","year":"2011","unstructured":"Gregor Richards , Christian Hammer , Brian Burg , and Jan Vitek . 2011 . The Eval That Men Do - A Large-Scale Study of the Use of Eval in JavaScript Applications. In European Conference on Object-Oriented Programming (ECOOP). 52\u201378 . Gregor Richards, Christian Hammer, Brian Burg, and Jan Vitek. 2011. The Eval That Men Do - A Large-Scale Study of the Use of Eval in JavaScript Applications. In European Conference on Object-Oriented Programming (ECOOP). 52\u201378."},{"key":"e_1_3_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/2884781.2884829"},{"key":"e_1_3_2_1_44_1","volume-title":"Freezing the Web: A Study of ReDoS Vulnerabilities in JavaScript-based Web Servers. In USENIX Security Symposium. 361\u2013376","author":"Staicu Cristian-Alexandru","year":"2018","unstructured":"Cristian-Alexandru Staicu and Michael Pradel . 2018 . Freezing the Web: A Study of ReDoS Vulnerabilities in JavaScript-based Web Servers. In USENIX Security Symposium. 361\u2013376 . Cristian-Alexandru Staicu and Michael Pradel. 2018. Freezing the Web: A Study of ReDoS Vulnerabilities in JavaScript-based Web Servers. In USENIX Security Symposium. 361\u2013376."},{"key":"e_1_3_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2017.8115668"},{"key":"e_1_3_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/2661088.2661101"},{"key":"e_1_3_2_1_47_1","volume-title":"International Conference on Automated Software Engineering (ASE). IEEE, 231\u2013240","author":"Peter","unstructured":"Peter Wei\u00df gerber and Stephan Diehl. 2006. Identifying Refactorings from Source-Code Changes . In International Conference on Automated Software Engineering (ASE). IEEE, 231\u2013240 . Peter Wei\u00df gerber and Stephan Diehl. 2006. Identifying Refactorings from Source-Code Changes. In International Conference on Automated Software Engineering (ASE). IEEE, 231\u2013240."},{"key":"e_1_3_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/2970276.2970359"},{"key":"e_1_3_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-017-9567-4"},{"key":"e_1_3_2_1_50_1","volume-title":"An Empirical Study of Dynamic Types for Python Projects. In International Conference on Software Analysis, Testing, and Evolution. 85\u2013100","author":"Xia Xinmeng","year":"2018","unstructured":"Xinmeng Xia , Xincheng He , Yanyan Yan , Lei Xu , and Baowen Xu . 2018 . An Empirical Study of Dynamic Types for Python Projects. In International Conference on Software Analysis, Testing, and Evolution. 85\u2013100 . Xinmeng Xia, Xincheng He, Yanyan Yan, Lei Xu, and Baowen Xu. 2018. An Empirical Study of Dynamic Types for Python Projects. In International Conference on Software Analysis, Testing, and Evolution. 85\u2013100."},{"key":"e_1_3_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/2950290.2950357"},{"key":"e_1_3_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/2950290.2950343"},{"key":"e_1_3_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2019.2961897"}],"event":{"name":"ESEC\/FSE '22: 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering","location":"Singapore Singapore","acronym":"ESEC\/FSE '22","sponsor":["SIGSOFT ACM Special Interest Group on Software Engineering","NUS NUS"]},"container-title":["Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3540250.3549114","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3540250.3549114","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T17:51:02Z","timestamp":1750182662000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3540250.3549114"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,11,7]]},"references-count":53,"alternative-id":["10.1145\/3540250.3549114","10.1145\/3540250"],"URL":"https:\/\/doi.org\/10.1145\/3540250.3549114","relation":{},"subject":[],"published":{"date-parts":[[2022,11,7]]},"assertion":[{"value":"2022-11-09","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}