{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T20:15:03Z","timestamp":1784232903617,"version":"3.55.0"},"reference-count":26,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2021,10,15]],"date-time":"2021-10-15T00:00:00Z","timestamp":1634256000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"Ministerstvo \u00f0kolstv\u00ed, Ml\u00e1de\u00f0e a T\u00f0lov\u00f0chovy","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"]}]},{"DOI":"10.13039\/100000001","name":"NSF","doi-asserted-by":"publisher","award":["1759736, 1544542, 1925644, 1910850"],"award-info":[{"award-number":["1759736, 1544542, 1925644, 1910850"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100010663","name":"H2020 European Research Council","doi-asserted-by":"publisher","award":["695412"],"award-info":[{"award-number":["695412"]}],"id":[{"id":"10.13039\/100010663","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2021,10,20]]},"abstract":"<jats:p>Most dynamic languages allow users to turn text into code using various functions, often named &lt;tt&gt;eval&lt;\/tt&gt;, with language-dependent semantics. The widespread use of these reflective functions hinders static analysis and prevents compilers from performing optimizations. This paper aims to provide a better sense of why programmers use &lt;tt&gt;eval&lt;\/tt&gt;. Understanding why &lt;tt&gt;eval&lt;\/tt&gt; is used in practice is key to finding ways to mitigate its negative impact. We have reasons to believe that reflective feature usage is language and application domain-specific; we focus on data science code written in R and compare our results to previous work that analyzed web programming in JavaScript. We analyze 49,296,059 calls to &lt;tt&gt;eval&lt;\/tt&gt; from 240,327 scripts extracted from 15,401 R packages. We find that &lt;tt&gt;eval&lt;\/tt&gt; is indeed in widespread use; R\u2019s &lt;tt&gt;eval&lt;\/tt&gt; is more pervasive and arguably dangerous than what was previously reported for JavaScript.<\/jats:p>","DOI":"10.1145\/3485502","type":"journal-article","created":{"date-parts":[[2021,10,15]],"date-time":"2021-10-15T19:18:28Z","timestamp":1634325508000},"page":"1-23","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["What we eval in the shadows: a large-scale study of eval in R programs"],"prefix":"10.1145","volume":"5","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-0814-5015","authenticated-orcid":false,"given":"Aviral","family":"Goel","sequence":"first","affiliation":[{"name":"Northeastern University, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4455-1130","authenticated-orcid":false,"given":"Pierre","family":"Donat-Bouillud","sequence":"additional","affiliation":[{"name":"Czech Technical University, Czechia"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Filip","family":"K\u0159ikava","sequence":"additional","affiliation":[{"name":"Czech Technical University, Czechia"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Christoph M.","family":"Kirsch","sequence":"additional","affiliation":[{"name":"University of Salzburg, Austria \/ Czech Technical University, Czechia"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Jan","family":"Vitek","sequence":"additional","affiliation":[{"name":"Northeastern University, USA \/ Czech Technical University, Czechia"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2021,10,15]]},"reference":[{"key":"e_1_2_2_1_1","unstructured":"JJ Allaire. 2021. rmarkdown: Dynamic Documents for R. https:\/\/github.com\/rstudio\/rmarkdown R package version 2.9.  JJ Allaire. 2021. rmarkdown: Dynamic Documents for R. https:\/\/github.com\/rstudio\/rmarkdown R package version 2.9."},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/3426470"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/3428275"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276490"},{"key":"e_1_2_2_5_1","volume-title":"Julia: A Fast Dynamic Language for Technical Computing. CoRR, abs\/1209.5145","author":"Bezanson Jeff","year":"2012","unstructured":"Jeff Bezanson , Stefan Karpinski , Viral Shah , and Alan Edelman . 2012 . Julia: A Fast Dynamic Language for Technical Computing. CoRR, abs\/1209.5145 (2012). Jeff Bezanson, Stefan Karpinski, Viral Shah, and Alan Edelman. 2012. Julia: A Fast Dynamic Language for Technical Computing. CoRR, abs\/1209.5145 (2012)."},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1985793.1985827"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-012-9203-2"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1007\/s11432-017-9153-3"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-44898-5_1"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/3359619.3359744"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3360579"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1080\/10618600.1996.10474713"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/2338965.2336758"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/3213846.3213863"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/286936.286945"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2644805"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/960118.808387"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2384616.2384660"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31057-7_6"},{"key":"e_1_2_2_21_1","volume-title":"R: A Language and Environment for Statistical Computing. https:\/\/www.R-project.org\/","author":"Team R Core","year":"2017","unstructured":"R Core Team . 2017 . R: A Language and Environment for Statistical Computing. https:\/\/www.R-project.org\/ R Core Team. 2017. R: A Language and Environment for Statistical Computing. https:\/\/www.R-project.org\/"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-22655-7_4"},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1809028.1806598"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.5281\/zenodo.1146014"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.18293\/SEKE2015-097"},{"key":"e_1_2_2_26_1","volume-title":"ggplot2: Elegant Graphics for Data Analysis","author":"Wickham Hadley","unstructured":"Hadley Wickham . 2016. ggplot2: Elegant Graphics for Data Analysis . Springer-Verlag New York . https:\/\/ggplot2.tidyverse.org Hadley Wickham. 2016. ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York. https:\/\/ggplot2.tidyverse.org"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.21105\/joss.01686"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3485502","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3485502","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3485502","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T20:18:40Z","timestamp":1750191520000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3485502"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,10,15]]},"references-count":26,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2021,10,20]]}},"alternative-id":["10.1145\/3485502"],"URL":"https:\/\/doi.org\/10.1145\/3485502","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2021,10,15]]},"assertion":[{"value":"2021-10-15","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}