The R Interpreter

R is an interpreted language. When you enter expressions into the R console (or run an R script in batch mode), a program within the R system, called the interpreter, executes the actual code that you wrote. Unlike C, C++, and Java, there is no need to compile your programs into an object language. Other examples of interpreted languages are Common Lisp, Perl, and JavaScript.

All R programs are composed of a series of expressions. These expressions often take the form of function calls. The R interpreter begins by parsing each expression, translating syntactic sugar into functional form. Next, R substitutes objects for symbols (where appropriate). Finally, R evaluates each expression, returning an object. For complex expressions, this process may be recursive. In some special cases (such as conditional statements), R does not evaluate all arguments to a function. As an example, let’s consider the following R expression:

> x <- 1

On an R console, you would typically type x <- 1 and then press the Enter key. The R interpreter will first translate this expression into the following function call:

`<-`(x, 1)

Next, the interpreter evaluates this function. It assigns the constant value 1 to the symbol x in the current environment and then returns the value 1.

Let’s consider another example. (We’ll assume it’s from the same session, so that the symbol x is mapped to the value 1.)

> if (x > 1) "orange" else "apple"
[1] "apple"

Here is how the R interpreter would evaluate this ...

Get R in a Nutshell, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.