Renjin is an implementation of the
R programming language
R is a programming language for statistical computing and graphics supported by the R Core Team and the R Foundation for Statistical Computing. Created by statisticians Ross Ihaka and Robert Gentleman, R is used among data miners, bioinforma ...
atop the
Java Virtual Machine
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describ ...
. It is
free software
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, ...
released under the
GPL
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general us ...
. Renjin is tightly integrated with
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
to allow the embedding of the interpreter into any Java application with full two-way access between the Java and R code.
Renjin's development is primarily supported by
BeDataDriven, but ultimately made possible by several current and past contributors including Mehmet Hakan Satman,
Hannes Mühleisen, and Ruslan Shevchenko.
History
Renjin's roots lie in an abortive 2010 attempt to compile the GNU R interpreter for the JVM via nestedvm,
a toolchain which involves cross-compiling C and Fortran code to a static MIPS binary, which nestedvm
can then translate to JVM bytecode. This proved challenging as GNU R had grown to rely heavily on dynamic linking and the best C standard library
implementation available at the time for the MIPS architecture,
Newlib
Newlib is a C standard library implementation intended for use on embedded systems. It is a conglomeration of several library parts, all under free software licenses that make them easily usable on embedded products.
It was created by Cygnu ...
, was not fully compatible with the
GNU C Library
The GNU C Library, commonly known as glibc, is the GNU Project's implementation of the C standard library. Despite its name, it now also directly supports C++ (and, indirectly, other programming languages). It was started in the 1980s by ...
, against which
GNU R had been developed.
The experience with the R4JVM project provided the BeDataDriven team with in depth look at the GNU R codebase, and convinced them
that a new implementation, written in Java, was a feasible undertaking. Development on Renjin began in October 2010, and rapidly resulted in
a functional, if minimal, interpreter for the R language.
References
External links
*
{{R (programming language)
Free software programmed in Java (programming language)
JVM programming languages
Scripting languages
Cross-platform free software
Array programming languages
Dynamically typed programming languages
Functional languages
Data-centric programming languages
Free statistical software
Literate programming
Numerical analysis software for Linux
Numerical analysis software for macOS
Numerical analysis software for Windows
Data mining and machine learning software
Free data visualization software