Abstract: In this talk, I will present the design and implementation of call-by-need in R, and a data-driven study of how generations of programmers have put laziness to use in their code. In our study, we analyze 16,707 R packages and observe the creation of 270.9 B promises. Our data suggest that there is little supporting evidence to assert that programmers use laziness to avoid unnecessary computation or to operate over infinite data structures. For the most part R code appears to have been written without reliance on and in many cases even knowledge of, delayed argument evaluation. The only significant exception is a small number of packages which leverage call-by-need for meta-programming. I will discuss how we intend to leverage these insights to remove laziness from R and enable non-intrusive migration of code from lazy to eager evaluation.
Bio: Aviral Goel is a 4th year Ph.D. student at Northeastern University, advised by Professor Jan Vitek. He is interested in improving tools and techniques for data science applications. He is currently working on removing laziness from R. He received a BE in Electronics and Communication Engineering in 2012 from NSIT, India.