{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,27]],"date-time":"2025-03-27T12:41:37Z","timestamp":1743079297425,"version":"3.40.3"},"publisher-location":"Cham","reference-count":25,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783030148041"},{"type":"electronic","value":"9783030148058"}],"license":[{"start":{"date-parts":[[2019,1,1]],"date-time":"2019-01-01T00:00:00Z","timestamp":1546300800000},"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":[[2019]]},"DOI":"10.1007\/978-3-030-14805-8_5","type":"book-chapter","created":{"date-parts":[[2019,2,20]],"date-time":"2019-02-20T13:04:29Z","timestamp":1550667869000},"page":"75-93","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["Dynamic Flow Analysis for JavaScript"],"prefix":"10.1007","author":[{"given":"Nico","family":"Naus","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Peter","family":"Thiemann","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2019,2,21]]},"reference":[{"key":"5_CR1","doi-asserted-by":"crossref","unstructured":"An, J.D., Chaudhuri, A., Foster, J.S., Hicks, M.: Dynamic inference of static types for Ruby. In: Ball, T., Sagiv, M. (eds.) Proceedings of the 38th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2011, Austin, TX, USA, 26\u201328 January 2011, pp. 459\u2013472. ACM (2011)","DOI":"10.1145\/1926385.1926437"},{"issue":"2","key":"5_CR2","doi-asserted-by":"publisher","first-page":"37","DOI":"10.1016\/j.entcs.2005.09.010","volume":"138","author":"C Anderson","year":"2005","unstructured":"Anderson, C., Giannini, P.: Type checking for JavaScript. Electr. Notes Theor. Comput. Sci. 138(2), 37\u201358 (2005)","journal-title":"Electr. Notes Theor. Comput. Sci."},{"key":"5_CR3","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). https:\/\/doi.org\/10.1007\/11531142_19"},{"key":"5_CR4","doi-asserted-by":"crossref","unstructured":"Cartwright, R., Fagan, M.: Soft typing. In: Proceedings of the ACM SIGPLAN 1991 Conference on Programming Language Design and Implementation (PLDI), Toronto, Ontario, Canada, 26\u201328 June 1991, pp. 278\u2013292 (1991)","DOI":"10.1145\/113446.113469"},{"key":"5_CR5","doi-asserted-by":"crossref","unstructured":"Chugh, R., Herman, D., Jhala, R.: Dependent types for JavaScript. In: Proceedings of the 27th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2012, Part of SPLASH 2012, Tucson, AZ, USA, 21\u201325 October 2012, pp. 587\u2013606 (2012)","DOI":"10.1145\/2398857.2384659"},{"key":"5_CR6","unstructured":"Facebook Flow (2016). https:\/\/flowtype.org\/ . Accessed 21 June 2016"},{"key":"5_CR7","doi-asserted-by":"crossref","unstructured":"Furr, M., An, J.D., Foster, J.S., Hicks, M.W.: Static type inference for Ruby. In: Shin, S.Y., Ossowski, S. (eds.) Proceedings of the 2009 ACM Symposium on Applied Computing (SAC), Honolulu, Hawaii, USA, 9\u201312 March 2009, pp. 1859\u20131866. ACM (2009)","DOI":"10.1145\/1529282.1529700"},{"key":"5_CR8","doi-asserted-by":"crossref","unstructured":"Hackett, B., Guo, S.: Fast and precise hybrid type inference for JavaScript. In: Vitek, J., Lin, H., Tip, F. (eds.) ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2012, Beijing, China, 11\u201316 June 2012, pp. 239\u2013250. ACM (2012)","DOI":"10.1145\/2345156.2254094"},{"key":"5_CR9","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"448","DOI":"10.1007\/3540543961_22","volume-title":"Functional Programming Languages and Computer Architecture","author":"F Henglein","year":"1991","unstructured":"Henglein, F.: Efficient type inference for higher-order binding-time analysis. In: Hughes, J. (ed.) FPCA 1991. LNCS, vol. 523, pp. 448\u2013472. Springer, Heidelberg (1991). https:\/\/doi.org\/10.1007\/3540543961_22"},{"key":"5_CR10","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"234","DOI":"10.1007\/978-3-319-17524-9_17","volume-title":"NASA Formal Methods","author":"R Jakob","year":"2015","unstructured":"Jakob, R., Thiemann, P.: A falsification view of success typing. In: Havelund, K., Holzmann, G., Joshi, R. (eds.) NFM 2015. LNCS, vol. 9058, pp. 234\u2013247. Springer, Cham (2015). https:\/\/doi.org\/10.1007\/978-3-319-17524-9_17"},{"key":"5_CR11","unstructured":"Jalangi2 GitHub (2015). https:\/\/github.com\/Samsung\/jalangi2 . Accessed 9 July 2015"},{"key":"5_CR12","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). https:\/\/doi.org\/10.1007\/978-3-642-03237-0_17"},{"key":"5_CR13","unstructured":"Jones, N.D., Muchnick, S.S.: Flow analysis and optimization of Lisp-like structures. In: Aho, A.V., Zilles, S.N., Rosen, B.K. (eds.) Conference Record of the Sixth Annual ACM Symposium on Principles of Programming Languages, San Antonio, Texas, USA, 1979 January, pp. 244\u2013256. ACM Press (1979)"},{"key":"5_CR14","doi-asserted-by":"crossref","unstructured":"Lerner, B.S., Politz, J.G., Guha, A., Krishnamurthi, S.: TeJaS: retrofitting type systems for JavaScript. In: DLS 2013, Proceedings of the 9th Symposium on Dynamic Languages, Part of SPLASH 2013, Indianapolis, IN, USA, 26\u201331 October 2013, pp. 1\u201316 (2013)","DOI":"10.1145\/2508168.2508170"},{"key":"5_CR15","unstructured":"Naus, N.: Dynamic type inference for JavaScript. Master Thesis (2015)"},{"key":"5_CR16","doi-asserted-by":"crossref","unstructured":"Pradel, M., Schuh, P., Sen, K.: TypeDevil: dynamic type inconsistency analysis for JavaScript. In: 37th IEEE\/ACM International Conference on Software Engineering, ICSE 2015, Florence, Italy, 16\u201324 May 2015, vol. 1, pp. 314\u2013324. IEEE (2015)","DOI":"10.1109\/ICSE.2015.51"},{"key":"5_CR17","doi-asserted-by":"crossref","unstructured":"Ren, B.M., Foster, J.S.: Just-in-time static type checking for dynamic languages. In: Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2016, Santa Barbara, CA, USA, 13\u201317 June 2016, pp. 462\u2013476 (2016)","DOI":"10.1145\/2908080.2908127"},{"key":"5_CR18","unstructured":"Saftoiu, C.: JSTrace: run-time type discovery for JavaScript. Technical report, Brown University (2010)"},{"key":"5_CR19","unstructured":"Salib, M.: Faster than C: static type inference with Starkiller. In: PyCon Proceedings, Washington DC, vol. 3 (2004)"},{"key":"5_CR20","doi-asserted-by":"crossref","unstructured":"Sen, K., Kalasapur, S., Brutch, T.G., Gibbs, S.: Jalangi: a tool framework for concolic testing, selective record-replay, and dynamic analysis of JavaScript. In: Meyer, B., Baresi, L., Mezini, M. (eds.) Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC\/FSE 2013, Saint Petersburg, Russian Federation, 18\u201326 August 2013, pp. 615\u2013618. ACM (2013)","DOI":"10.1145\/2491411.2491447"},{"key":"5_CR21","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"2","DOI":"10.1007\/978-3-540-73589-2_2","volume-title":"ECOOP 2007 \u2013 Object-Oriented Programming","author":"J Siek","year":"2007","unstructured":"Siek, J., Taha, W.: Gradual typing for objects. In: Ernst, E. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 2\u201327. Springer, Heidelberg (2007). https:\/\/doi.org\/10.1007\/978-3-540-73589-2_2"},{"key":"5_CR22","unstructured":"SunSpider 1.0.2 JavaScript Benchmark (2016). https:\/\/webkit.org\/perf\/sunspider\/sunspider.html . Accessed 5 July 2016"},{"key":"5_CR23","doi-asserted-by":"crossref","unstructured":"Swamy, N., et al.: Gradual typing embedded securely in JavaScript. In: The 41st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2014, San Diego, CA, USA, 20\u201321 January 2014, pp. 425\u2013438 (2014)","DOI":"10.1145\/2535838.2535889"},{"key":"5_CR24","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). https:\/\/doi.org\/10.1007\/978-3-540-31987-0_28"},{"issue":"1","key":"5_CR25","doi-asserted-by":"publisher","first-page":"87","DOI":"10.1145\/239912.239917","volume":"19","author":"AK Wright","year":"1997","unstructured":"Wright, A.K., Cartwright, R.: A practical soft type system for Scheme. ACM Trans. Program. Lang. Syst. 19(1), 87\u2013152 (1997)","journal-title":"ACM Trans. Program. Lang. Syst."}],"container-title":["Lecture Notes in Computer Science","Trends in Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-14805-8_5","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,9,12]],"date-time":"2022-09-12T04:52:43Z","timestamp":1662958363000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-030-14805-8_5"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019]]},"ISBN":["9783030148041","9783030148058"],"references-count":25,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-14805-8_5","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2019]]},"assertion":[{"value":"21 February 2019","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"TFP","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Symposium on Trends in Functional Programming","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"College Park, MD","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"USA","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2016","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"8 June 2016","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"10 June 2016","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"17","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"tfp2016","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Single-blind","order":1,"name":"type","label":"Type","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"EasyChair","order":2,"name":"conference_management_system","label":"Conference Management System","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"18","order":3,"name":"number_of_submissions_sent_for_review","label":"Number of Submissions Sent for Review","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"10","order":4,"name":"number_of_full_papers_accepted","label":"Number of Full Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"0","order":5,"name":"number_of_short_papers_accepted","label":"Number of Short Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"56% - The value is computed by the equation \"Number of Full Papers Accepted \/ Number of Submissions Sent for Review * 100\" and then rounded to a whole number.","order":6,"name":"acceptance_rate_of_full_papers","label":"Acceptance Rate of Full Papers","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"3,7","order":7,"name":"average_number_of_reviews_per_paper","label":"Average Number of Reviews per Paper","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"3,35","order":8,"name":"average_number_of_papers_per_reviewer","label":"Average Number of Papers per Reviewer","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"No","order":9,"name":"external_reviewers_involved","label":"External Reviewers Involved","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}}]}}