{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,30]],"date-time":"2026-01-30T05:34:09Z","timestamp":1769751249612,"version":"3.49.0"},"reference-count":18,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2020,11,13]],"date-time":"2020-11-13T00:00:00Z","timestamp":1605225600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100000038","name":"Natural Sciences and Engineering Research Council of Canada","doi-asserted-by":"publisher","id":[{"id":"10.13039\/501100000038","id-type":"DOI","asserted-by":"publisher"}]},{"name":"National Science Foundation","award":["1759736, 1544542, 1925644, 1910850"],"award-info":[{"award-number":["1759736, 1544542, 1925644, 1910850"]}]},{"name":"ERC European Union's Horizon 2020 Research Programme","award":["695412"],"award-info":[{"award-number":["695412"]}]},{"DOI":"10.13039\/100007297","name":"Office of Naval Research","doi-asserted-by":"publisher","award":["503353"],"award-info":[{"award-number":["503353"]}],"id":[{"id":"10.13039\/100007297","id-type":"DOI","asserted-by":"publisher"}]},{"name":"Czech Ministry of Education, Youth, and Sports fomr the Czech Operational Programme Research, Development, and Education","award":["CZ.02.1.01\/0.0\/0.0\/15_003\/0000421"],"award-info":[{"award-number":["CZ.02.1.01\/0.0\/0.0\/15_003\/0000421"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2020,11,13]]},"abstract":"<jats:p>\n            The R programming language is widely used in a variety of domains. It was designed to favor an interactive style of programming with minimal syntactic and conceptual overhead. This design is well suited to data analysis, but a bad fit for tools such as compilers or program analyzers. In particular, R has no type annotations, and all operations are dynamically checked at run-time. The starting point for our work are the two questions:\n            <jats:italic>what expressive power is needed to accurately type R code?<\/jats:italic>\n            and\n            <jats:italic>which type system is the R community willing to adopt?<\/jats:italic>\n            Both questions are difficult to answer without actually experimenting with a type system. The goal of this paper is to provide data that can feed into that design process. To this end, we perform a large corpus analysis to gain insights in the degree of polymorphism exhibited by idiomatic R code and explore potential benefits that the R community could accrue from a simple type system. As a starting point, we infer type signatures for 25,215 functions from 412 packages among the most widely used open source R libraries. We then conduct an evaluation on 8,694 clients of these packages, as well as on end-user code from the Kaggle data science competition website.\n          <\/jats:p>","DOI":"10.1145\/3428249","type":"journal-article","created":{"date-parts":[[2020,11,24]],"date-time":"2020-11-24T23:40:14Z","timestamp":1606261214000},"page":"1-25","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":4,"title":["Designing types for R, empirically"],"prefix":"10.1145","volume":"4","author":[{"given":"Alexi","family":"Turcotte","sequence":"first","affiliation":[{"name":"Northeastern University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Aviral","family":"Goel","sequence":"additional","affiliation":[{"name":"Northeastern University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Filip","family":"K\u0159ikava","sequence":"additional","affiliation":[{"name":"Czech Technical University, Czechia"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jan","family":"Vitek","sequence":"additional","affiliation":[{"name":"Northeastern University, USA \/ Czech Technical University, Czechia"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2020,11,13]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3385997"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926385.1926437"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.ECOOP.2016.1"},{"key":"e_1_2_2_4_1","volume-title":"Wilks","author":"Becker Richard A.","year":"1988","unstructured":"Richard A. Becker , John M. Chambers , and Allan R . Wilks . 1988 . The New S Language. Chapman & Hall , London. Richard A. Becker, John M. Chambers, and Allan R. Wilks. 1988. The New S Language. Chapman & Hall, London."},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276490"},{"key":"e_1_2_2_6_1","volume-title":"Understanding TypeScript. In European Conference on ObjectOriented Programming (ECOOP).","author":"Bierman Gavin","year":"2014","unstructured":"Gavin Bierman , Martin Abadi , and Mads Torgersen . 2014 . Understanding TypeScript. In European Conference on ObjectOriented Programming (ECOOP). Gavin Bierman, Martin Abadi, and Mads Torgersen. 2014. Understanding TypeScript. In European Conference on ObjectOriented Programming (ECOOP)."},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-14107-2_5"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640110"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/3360579"},{"key":"e_1_2_2_10_1","article-title":"R: A Language for Data Analysis and Graphics","volume":"5","author":"Ihaka Ross","year":"1996","unstructured":"Ross Ihaka and Robert Gentleman . 1996 . R: A Language for Data Analysis and Graphics . Journal of Computational and Graphical Statistics 5 , 3 ( 1996 ), 299-314. http:\/\/www.amstat.org\/publications\/jcgs\/ Ross Ihaka and Robert Gentleman. 1996. R: A Language for Data Analysis and Graphics. Journal of Computational and Graphical Statistics 5, 3 ( 1996 ), 299-314. http:\/\/www.amstat.org\/publications\/jcgs\/","journal-title":"Journal of Computational and Graphical Statistics"},{"key":"e_1_2_2_11_1","unstructured":"Uwe Ligges. [n. d.]. 20 Years of CRAN (Video on Channel9. In Keynote at UseR!  Uwe Ligges. [n. d.]. 20 Years of CRAN (Video on Channel9. In Keynote at UseR!"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2617548.2617553"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31057-7_6"},{"key":"e_1_2_2_14_1","unstructured":"Python Team. 2020. Type Hints for Python. https:\/\/docs.python.org\/3\/library\/typing.html.  Python Team. 2020. Type Hints for Python. https:\/\/docs.python.org\/3\/library\/typing.html."},{"key":"e_1_2_2_15_1","article-title":"Gnu parallel-the command-line power tool","volume":"36","author":"Ole Tange","year":"2011","unstructured":"Ole Tange et al. 2011 . Gnu parallel-the command-line power tool . The USENIX Magazine 36 , 1 ( 2011 ). Ole Tange et al. 2011. Gnu parallel-the command-line power tool. The USENIX Magazine 36, 1 ( 2011 ).","journal-title":"The USENIX Magazine"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1328438.1328486"},{"key":"e_1_2_2_17_1","volume-title":"CUFP","author":"Verlaguet Julien","year":"2013","unstructured":"Julien Verlaguet . 2013 . Hack for HipHop . CUFP , 2013, http:\/\/tinyurl.com\/lk8fy9q. Julien Verlaguet. 2013. Hack for HipHop. CUFP, 2013, http:\/\/tinyurl.com\/lk8fy9q."},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/1706299.1706343"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3428249","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3428249","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3428249","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T22:02:57Z","timestamp":1750197777000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3428249"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,11,13]]},"references-count":18,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2020,11,13]]}},"alternative-id":["10.1145\/3428249"],"URL":"https:\/\/doi.org\/10.1145\/3428249","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,11,13]]},"assertion":[{"value":"2020-11-13","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}