Table of Contents

    Core Characteristics of R Programming Language: An In-Depth Analysis

    Core Characteristics of R Programming Language: An In-Depth Analysis

    Core Characteristics

    EXECUTION MODEL: 

    Interpreted. R is also an interpreted language, in the sense that it provides an interface to compile the code; that is, expressions in R are also JIT-compiled to bytecode, which can then be interpreted.

    INTERACTIVE CONSOLE:

    RStudio, R Commander, Jupyter Notebook. RStudio is the cornerstone user interface for the R language. However, the language is also compatible with the R Commander and Jupyter Notebook GUIs.

    STANDARD LIBRARY:

    Comprehensive

    INHERITANCE:

    Multiple inheritance

    TYPING:

    Strong, dynamic. R is also dynamically typed in the sense that it is not necessary to predefine variables before execution (as would be the case in a low-level language such as C++).

    INTERFACE ENFORCEMENT:

    At runtime, via duck typing (allows for the running of operations on objects without specifically having to predefine those objects beforehand).

    FIRST CLASS FUNCTIONS:

    Yes. A function can be assigned to a variable in the same way as Python.

    CLOSURES:

    Yes. The scope of a function encompasses variables that appear in its body but that are not local variables or arguments. This is necessary for correct support of first class functions in a language with lexical scoping.

    ANONYMOUS FUNCTIONS:

    Limited syntax. R uses the function keyword in place of a lambda to do so.

    DATA ABSTRACTION:

    Classes. Both Python and R support object-oriented programming, where classes in R are of an S3 or S4 type. Although you can add methods to a class in R using the setMethod() function, this process is more simplistic in Python.