{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,1]],"date-time":"2026-04-01T14:45:57Z","timestamp":1775054757140,"version":"3.50.1"},"publisher-location":"Cham","reference-count":24,"publisher":"Springer International Publishing","isbn-type":[{"value":"9783030042714","type":"print"},{"value":"9783030042721","type":"electronic"}],"license":[{"start":{"date-parts":[[2018,1,1]],"date-time":"2018-01-01T00:00:00Z","timestamp":1514764800000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2018]]},"DOI":"10.1007\/978-3-030-04272-1_6","type":"book-chapter","created":{"date-parts":[[2018,11,19]],"date-time":"2018-11-19T01:02:36Z","timestamp":1542589356000},"page":"85-100","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":4,"title":["An Empirical Study of Dynamic Types for Python Projects"],"prefix":"10.1007","author":[{"given":"Xinmeng","family":"Xia","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Xincheng","family":"He","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Yanyan","family":"Yan","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Lei","family":"Xu","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Baowen","family":"Xu","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2018,11,20]]},"reference":[{"key":"6_CR1","unstructured":"2017 IEEE spectrum rankings. \n                      https:\/\/spectrum.ieee.org\/computing\/software\/the-2017-top-programming-languages"},{"key":"6_CR2","unstructured":"Awesome Python. \n                      https:\/\/github.com\/vinta\/awesome-python"},{"key":"6_CR3","unstructured":"Pysonar2. \n                      https:\/\/github.com\/yinwang0\/pysonar2"},{"key":"6_CR4","doi-asserted-by":"crossref","unstructured":"An, J.h., Chaudhuri, A., Foster, J.S.: Static typing for ruby on rails. In: 24th IEEE\/ACM International Conference on Automated Software Engineering, ASE 2009, pp. 590\u2013594. IEEE (2009)","DOI":"10.1109\/ASE.2009.80"},{"key":"6_CR5","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"428","DOI":"10.1007\/11531142_19","volume-title":"ECOOP 2005 - Object-Oriented Programming","author":"C Anderson","year":"2005","unstructured":"Anderson, C., Giannini, P., Drossopoulou, S.: Towards type inference for JavaScript. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 428\u2013452. Springer, Heidelberg (2005). \n                      https:\/\/doi.org\/10.1007\/11531142_19"},{"key":"6_CR6","first-page":"18","volume":"1050","author":"J Aycock","year":"2000","unstructured":"Aycock, J.: Aggressive type inference. Language 1050, 18 (2000)","journal-title":"Language"},{"key":"6_CR7","unstructured":"Cannon, B.: Localized type inference of atomic types in Python. Ph.D. thesis. Citeseer (2005)"},{"key":"6_CR8","doi-asserted-by":"crossref","unstructured":"Chen, Z., Chen, L., Zhou, Y., Xu, Z., Chu, W.C., Xu, B.: Dynamic slicing of Python programs. In: IEEE Computer Software and Applications Conference, pp. 219\u2013228 (2014)","DOI":"10.1109\/COMPSAC.2014.30"},{"key":"6_CR9","doi-asserted-by":"crossref","unstructured":"Chen, Z., Ma, W., Lin, W., Chen, L., Xu, B.: Tracking down dynamic feature code changes against Python software evolution. In: Third International Conference on Trustworthy Systems and Their Applications, pp. 54\u201363 (2016)","DOI":"10.1109\/TSA.2016.19"},{"issue":"1","key":"6_CR10","doi-asserted-by":"publisher","first-page":"012107","DOI":"10.1007\/s11432-017-9153-3","volume":"61","author":"Z Chen","year":"2018","unstructured":"Chen, Z., Ma, W., Lin, W., Chen, L., Li, Y., Xu, B.: A study on the changes of dynamic feature code when fixing bugs: towards the benefits and costs of Python dynamic features. Sci. China (Inf. Sci.) 61(1), 012107 (2018)","journal-title":"Sci. China (Inf. Sci.)"},{"key":"6_CR11","doi-asserted-by":"crossref","unstructured":"Furr, M., An, J.D., Foster, J.S.: Profile-guided static typing for dynamic scripting languages. In: ACM SIGPLAN Notices, vol. 44, pp. 283\u2013300. ACM (2009)","DOI":"10.1145\/1639949.1640110"},{"key":"6_CR12","doi-asserted-by":"crossref","unstructured":"Furr, M., An, J.D., Foster, J.S., Hicks, M.: Static type inference for Ruby. In: Proceedings of the 2009 ACM Symposium on Applied Computing, pp. 1859\u20131866. ACM (2009)","DOI":"10.1145\/1529282.1529700"},{"issue":"12","key":"6_CR13","doi-asserted-by":"publisher","first-page":"27","DOI":"10.1145\/1899661.1869635","volume":"45","author":"M Gorbovitski","year":"2010","unstructured":"Gorbovitski, M., Liu, Y.A., Stoller, S.D., Rothamel, T., Tekle, T.K.: Alias analysis for optimization of dynamic languages. ACM SIGPLAN Not. 45(12), 27\u201342 (2010)","journal-title":"ACM SIGPLAN Not."},{"key":"6_CR14","unstructured":"Holkner, A., Harland, J.: Evaluating the dynamic behaviour of Python applications. In: Proceedings of the Thirty-Second Australasian Conference on Computer Science, vol. 91, pp. 19\u201328. Australian Computer Society, Inc. (2009)"},{"key":"6_CR15","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"238","DOI":"10.1007\/978-3-642-03237-0_17","volume-title":"Static Analysis","author":"SH Jensen","year":"2009","unstructured":"Jensen, S.H., M\u00f8ller, A., Thiemann, P.: Type analysis for JavaScript. In: Palsberg, J., Su, Z. (eds.) SAS 2009. LNCS, vol. 5673, pp. 238\u2013255. Springer, Heidelberg (2009). \n                      https:\/\/doi.org\/10.1007\/978-3-642-03237-0_17"},{"key":"6_CR16","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"300","DOI":"10.1007\/978-3-642-16612-9_23","volume-title":"Runtime Verification","author":"E Kneuss","year":"2010","unstructured":"Kneuss, E., Suter, P., Kuncak, V.: Runtime instrumentation for precise flow-sensitive type analysis. In: Barringer, H., et al. (eds.) RV 2010. LNCS, vol. 6418, pp. 300\u2013314. Springer, Heidelberg (2010). \n                      https:\/\/doi.org\/10.1007\/978-3-642-16612-9_23"},{"key":"6_CR17","doi-asserted-by":"crossref","unstructured":"Richards, G., Lebresne, S., Burg, B., Vitek, J.: An analysis of the dynamic behavior of JavaScript programs. In: ACM SIGPLAN Notices, vol. 45, pp. 1\u201312. ACM (2010)","DOI":"10.1145\/1809028.1806598"},{"key":"6_CR18","unstructured":"Salib, M.: Starkiller: a static type inferencer and compiler for Python. Ph.D. thesis. Massachusetts Institute of Technology (2004)"},{"key":"6_CR19","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"283","DOI":"10.1007\/978-3-642-41707-8_20","volume-title":"Testing Software and Systems","author":"S Sapra","year":"2013","unstructured":"Sapra, S., Minea, M., Chaki, S., Gurfinkel, A., Clarke, E.M.: Finding errors in Python programs using dynamic symbolic execution. In: Yenig\u00fcn, H., Yilmaz, C., Ulrich, A. (eds.) ICTSS 2013. LNCS, vol. 8254, pp. 283\u2013289. Springer, Heidelberg (2013). \n                      https:\/\/doi.org\/10.1007\/978-3-642-41707-8_20"},{"key":"6_CR20","doi-asserted-by":"crossref","unstructured":"\u00c5kerblom, B., Stendahl, J., Tumlin, M., Wrigstad, T.: Tracing dynamic features in Python programs. In: MSR, pp. 292\u2013295 (2014)","DOI":"10.1145\/2597073.2597103"},{"key":"6_CR21","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"408","DOI":"10.1007\/978-3-540-31987-0_28","volume-title":"Programming Languages and Systems","author":"P Thiemann","year":"2005","unstructured":"Thiemann, P.: Towards a type system for analyzing JavaScript programs. In: Sagiv, M. (ed.) ESOP 2005. LNCS, vol. 3444, pp. 408\u2013422. Springer, Heidelberg (2005). \n                      https:\/\/doi.org\/10.1007\/978-3-540-31987-0_28"},{"key":"6_CR22","doi-asserted-by":"crossref","unstructured":"Vitousek, M.M., Kent, A.M., Siek, J.G., Baker, J.: Design and evaluation of gradual typing for Python. In: ACM SIGPLAN Notices, vol. 50, pp. 45\u201356. ACM (2014)","DOI":"10.1145\/2775052.2661101"},{"key":"6_CR23","doi-asserted-by":"crossref","unstructured":"Wang, B., Chen, L., Ma, W., Chen, Z., Xu, B.: An empirical study on the impact of Python dynamic features on change-proneness. In: The International Conference on Software Engineering and Knowledge Engineering, pp. 134\u2013139 (2015)","DOI":"10.18293\/SEKE2015-097"},{"key":"6_CR24","doi-asserted-by":"crossref","unstructured":"Xu, Z., Zhang, X., Chen, L., Pei, K., Xu, B.: Python probabilistic type inference with natural language support. In: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 607\u2013618. ACM (2016)","DOI":"10.1145\/2950290.2950343"}],"container-title":["Lecture Notes in Computer Science","Software Analysis, Testing, and Evolution"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-04272-1_6","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,5,20]],"date-time":"2019-05-20T05:13:34Z","timestamp":1558329214000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-030-04272-1_6"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018]]},"ISBN":["9783030042714","9783030042721"],"references-count":24,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-04272-1_6","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2018]]},"assertion":[{"value":"20 November 2018","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"SATE","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Software Analysis, Testing, and Evolution","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Shenzheng","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"China","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2018","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"23 November 2018","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"24 November 2018","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"8","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"satev2018","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/xiongyingfei.github.io\/confs\/sate18\/index_en.html","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}