Evaluating the Design of the R Language - Objects and Functions for Data Analysis

@inproceedings{Morandat2012EvaluatingTD,
  title={Evaluating the Design of the R Language - Objects and Functions for Data Analysis},
  author={Flor{\'e}al Morandat and Brandon Hill and Leo Osvald and Jan Vitek},
  booktitle={ECOOP},
  year={2012}
}
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… Expand
The Functional Programming Language R and the Paradigm of Dynamic Scientific Programming - (Position Paper)
TLDR
The background of R in historical context is discussed, some of the more problematic language features are highlighted, and the potential for the effective use of state-of-the-art language technology in a future, safe and efficient implementation is discussed. Expand
Designing types for R, empirically
TLDR
A large corpus analysis is performed 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. Expand
First-class environments in R
  • Aviral Goel, J. Vitek
  • Proceedings of the 17th ACM SIGPLAN International Symposium on Dynamic Languages
  • 2021
The R programming language is widely used for statistical computing. To enable interactive data exploration and rapid prototyping, R encourages a dynamic programming style. This programming style isExpand
Vectorization of apply to reduce interpretation overhead of R
TLDR
This paper presents a new approach to improve execution efficiency of R programs by vectorizing the widely used Apply class of operations by combining data transformation and function vectorization to convert the looping-over-data execution of the standard Apply into a single invocation of a vectorized function that contains a sequence of vector operations over the input data. Expand
Introduction to R
TLDR
A language for data analysis and graphics, this definition of R was used by Ross Ihaka and Robert Gentleman in the title of their 1996 paper outlining their experience of designing and implementing the R software. Expand
Runtime and memory consumption analyses for machine learning R programs
R is a multi-paradigm language with a dynamic type system, different object systems and functional characteristics. These characteristics support the development of statistical algorithms at a highExpand
On the design, implementation, and use of laziness in R
TLDR
For the most part R code appears to have been written without reliance on, and in many cases even knowledge of, delayed argument evaluation, with the only significant exception is a small number of packages which leverage call-by-need for meta-programming. Expand
Julia: A Fast Dynamic Language for Technical Computing
TLDR
Julia is presented, a new dynamic language for technical computing, designed for performance from the beginning by adapting and extending modern programming language techniques, which enables an expressive programming model and successful type inference, leading to good performance for a wide range of programs. Expand
RESEARCH ARTICLE Runtime and Memory Consumption Analyses for Machine Learning R Programs (SPECIAL ISSUE: StatConf13) (PREPRINT)
TLDR
The traceR tool is used to analyse the bottlenecks arising in the statistics domain and measure the runtime and overall memory consumption on a welldened set of classical machine learning applications and gained detailed insights into the performance issues of these programs. Expand
A trustworthy mechanized formalization of R
TLDR
This work develops a big-step operational semantics for R in the form of an interpreter written in the Coq proof assistant, and proves in Coq the preservation of memory invariants in selected parts of the interpreter. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 34 REFERENCES
Lexical Scope and Statistical Computing
TLDR
The concept of scoping rules is discussed and how lexical scope can enhance the functionality of a language is shown. Expand
Gentleman R: R: A language for data analysis and graphics
TLDR
The experience designing and implementing a statistical computing language that provides advantages in the areas of portability, computational efficiency, memory management, and scoping is discussed. Expand
An analysis of the dynamic behavior of JavaScript programs
TLDR
An empirical study of the dynamic behavior of a corpus of widely-used JavaScript programs is performed, and how and why the dynamic features are used are analyzed. Expand
Software for Data Analysis: Programming with R
TLDR
Programming with R: The Basics and Methods and Generic Functions and Interfaces I: Using C and Fortran. Expand
Self: The power of simplicity
TLDR
Because Self does not distinguish state from behavior, it narrows the gaps between ordinary objects, procedures, and closures and offers new insights into object-oriented computation. Expand
Software for data analysis
TLDR
The techniques covered include such modern programming enhancements as classes and methods, namespaces, and interfaces to spreadsheets or data bases, as well as computations for data visualization, numerical methods, and the use of text data. Expand
The art of the Metaobject Protocol
TLDR
A new approach to programming language design is presented, which resolves fundamental tensions between elegance and efficiency, and a metaobject protocol is presented that gives users the ability to incrementally modify the language's behavior and implementation. Expand
Common Lisp the Language
TLDR
This greatly expanded edition of the defacto standard is written by the Vice- Chairman of X3J13 (the ANSI committee responsible for the standardization of Common Lisp) and contains the entire text of the first edition plus six completely new chapters. Expand
A Syntactic Approach to Type Soundness
TLDR
A new approach to proving type soundness for Hindley/Milner-style polymorphic type systems by an adaptation of subject reduction theorems from combinatory logic to programming languages and the use of rewriting techniques for the specification of the language semantics is presented. Expand
CommonLoops: Merging Lisp and Object-Oriented Programming
TLDR
It is argued that CommonLoops' small kernel is powerful enough to implement the major object-oriented systems in use today, and its extensive use of meta-objects make practical both efficient implementation and experimentation with new ideas for object- oriented programming. Expand
...
1
2
3
4
...