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.