Evaluating the Design of the R Language

Objects and Functions for Data Analysis
  • Floréal Morandat
  • Brandon Hill
  • Leo Osvald
  • Jan Vitek
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7313)


R is a dynamic language for statistical computing that combines lazy functional features and object-oriented programming. This rather unlikely linguistic cocktail would probably never have been prepared by computer scientists, yet the language has become surprisingly popular. With millions of lines of R code available in repositories, we have an opportunity to evaluate the fundamental choices underlying the R language design. Using a combination of static and dynamic program analysis we assess the success of different language features.


  1. 1.
    Becker, R.A., Chambers, J.M., Wilks, A.R.: The New S Language. Chapman and Hall (1988)Google Scholar
  2. 2.
    Bobrow, D.G., Kahn, K.M., Kiczales, G., Masinter, L., Stefik, M., Zdybel, F.: In: Conference on Object-Oriented Programming, Languages and Applications, OOPSLA (1986)Google Scholar
  3. 3.
    Chambers, J.M.: Software for Data Analysis: Programming with R. Springer (2008)Google Scholar
  4. 4.
    Chambers, J.M., Hastie, T.J.: Statistical Models in S. Chapman & Hall (1992)Google Scholar
  5. 5.
    Ducournau, R.: Coloring, a Versatile Technique for Implementing Object-Oriented Languages. Software: Practice and Experience 41(6), 627–659 (2011)CrossRefGoogle Scholar
  6. 6.
    Kent Dybvig, R.: The Scheme Programming Language. MIT Press (2009)Google Scholar
  7. 7.
    Gentleman, R., et al. (eds.): Bioinformatics and Computational Biology Solutions Using R and Bioconductor. Statistics for Biology and Health. Springer (2005)Google Scholar
  8. 8.
    Gentleman, R., Ihaka, R.: Lexical scope and statistical computing. Journal of Computational and Graphical Statistics 9, 491–508 (2000)MathSciNetGoogle Scholar
  9. 9.
    Hudak, P., Hughes, J., Peyton Jones, S., Wadler, P.: A history of Haskell: being lazy with class. In: Conference on History of programming languages, HOPL (2007)Google Scholar
  10. 10.
    Ihaka, R., Gentleman, R.: R: A language for data analysis and graphics. Journal of Computational and Graphical Statistics 5(3), 299–314 (1996)Google Scholar
  11. 11.
    Keele, L.: Semiparametric Regression for the Social Sciences. Wiley (2008)Google Scholar
  12. 12.
    Kiczales, G., Rivieres, J.D., Bobrow, D.G.: The Art of the Metabobject Protocol: The Art of the Metaobject Protocol. MIT Press (1991)Google Scholar
  13. 13.
    Mitchell, E.G.: Functional programming through deep time: modeling the first complex ecosystems on earth. In: Conference on Functional Programming, ICFP (2011)Google Scholar
  14. 14.
    Parr, T., Fisher, K.: Ll(*): the foundation of the Antlr parser generator. In: Conference on Programming Language Design and Implementation, PLDI (2011)Google Scholar
  15. 15.
    R Development Core Team: R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing (2011)Google Scholar
  16. 16.
    R Development Core Team: The R language definition. R Foundation for Statistical Computing, http://cran.r-project.org/doc/manuals/R-lang.html
  17. 17.
    Richards, G., Lesbrene, S., Burg, B., Vitek, J.: An analysis of the dynamic behavior of JavaScript programs. In: Conference on Programming Language Design and Implementation, PLDI (2010)Google Scholar
  18. 18.
    Smith, D.: The R ecosystem. In: The R User Conference 2011 (August 2011)Google Scholar
  19. 19.
    Steele Jr., G.L.: Common LISP: the language, 2nd edn. Digital Press (1990)Google Scholar
  20. 20.
    Ungar, D., Smith, R.B.: Self: The power of simplicity. In: Conference on Object-Oriented Programming, Languages and Applications, OOPSLA (1987)Google Scholar
  21. 21.
    Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Information and Computation 115, 38–94 (1992)MathSciNetCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Floréal Morandat
    • 1
  • Brandon Hill
    • 1
  • Leo Osvald
    • 1
  • Jan Vitek
    • 1
  1. 1.Purdue UniversityUSA

Personalised recommendations