AutoWIG : automatisation de l'encapsulation de librairies C++ en Python et en R - Inria - Institut national de recherche en sciences et technologies du numérique
Conference Papers Year : 2016

AutoWIG : automatisation de l'encapsulation de librairies C++ en Python et en R

Abstract

Python and R programming languages are two of the most popular languages in scientific computing. However, most scientific packages incorporates C and C++ libraries. While several semi-automatic solutions and tools exist to wrap C++ libraries (RCPP, Boost.Python), the process of wrapping a large C++ library is cumbersome and time consuming. Some solutions have been developed in the past (e.g. Py++ or XDress) but require to write complex code to automate the process, and rely on technologies that are not maintained. AutoWIG relies on the LLVM/Clang technology for parsing C/C++ code and the Mako templating engine for generating Boost.Python wrappers. We will illustrate the usage of AutoWIG on a complex collection of C++ libraries for statistical analysis.
Les langages de programmation Python et R sont deux des langages les plus populaires pour le calcul scientifique. Cependant, la plupart des logiciels scientifiques incorporent des biblioth eques C ou C++. Bien qu'il existe plusieurs solutions et des outils semi-automatiques pour encapsuler des biblioth eques C++ (RCPP, Boost.Python), le processus d'encapsulation d'une grande biblioth eque C++ est long et fastidieux. Certaines solutions pour Python ont eté développées dans le passé (par exemple Py++ ou XDress) mais nécessitent d'´ ecrire du code complexe pour automatiser le processus, et de compter sur des technologies qui ne sont pas entretenues. Le logiciel AutoWIG fait appeì a la technologie LLVM/Clang pour l'analyse syntaxique de code C/C++ et a l'outil Mako pour générer l'encapsulation des biblioth eques C++ avec Boost.Python et RCPP. Nous illustrerons l'utilisation d'AutoWIG sur un ensemble complexe de biblioth eques C++ pour l'analyse statistique. Mots-clés. C++, Python, R, calcul scientifique Abstract. Python and R programming languages are two of the most popular languages in scientific computing. However, most scientific packages incorporates C and C++ libraries. While several semi-automatic solutions and tools exist to wrap C++ libraries (RCPP, Boost.Python), the process of wrapping a large C++ library is cumbersome and time consuming. Some solutions have been developed in the past (e.g. Py++ or XDress) but require to write complex code to automate the process, and rely on technologies that are not maintained. AutoWIG relies on the LLVM/Clang technology for parsing C/C++ code and the Mako templating engine for generating Boost.Python wrappers. We will illustrate the usage of AutoWIG on a complex collection of C++ libraries for statistical analysis.

Keywords

Fichier principal
Vignette du fichier
submission_167.pdf (101.66 Ko) Télécharger le fichier
Origin Files produced by the author(s)
Loading...

Dates and versions

hal-01316276 , version 1 (16-05-2016)

Identifiers

  • HAL Id : hal-01316276 , version 1

Cite

Pierre Fernique. AutoWIG : automatisation de l'encapsulation de librairies C++ en Python et en R. 48èmes Journées de Statistique de la SFdS Montpellier, May 2016, Montpellier, France. pp.6. ⟨hal-01316276⟩
326 View
302 Download

Share

More