You are here

Integration with other languages

ROOT is written in C++ but is integrated with other languages such as Python, R and Mathematica.


The Python bindings are also commonly called PyROOT. PyROOT is indeed a Python extension module that allows the user to interact with any ROOT class from the Python interpreter. This is done generically using the ROOT dictionary, therefore there is no need to generate any Python wrapper code to include new ROOT classes. At the same time PyROOT offers the possibility to execute and evaluate any Python command or start a Python shell from the ROOT/Cling prompt. Further details are available in the PyROOT manual. One of the most powerful features of PyROOT is that bindings are created automatically for every entity present in the ROOT type system. In other words, even if a header is interpreted at runtime, Python bindings will be created automatically.


The interface to R, ROOT R, is an interface allowing to call R functions using an R C++ interface. It allows to translate some datatypes from C++ to R inside the R environment and vice versa in an easy way to get the most from both R and ROOT. With this tool, the user cam tacke advantage of any existing library or R package. ROOT R also provides a R events processing system, which allows to use the R graphical system from C++.