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

Pierre Fernique 1
1 VIRTUAL PLANTS - Modeling plant morphogenesis at different scales, from genes to phenotype
CRISAM - Inria Sophia Antipolis - Méditerranée , INRA - Institut National de la Recherche Agronomique, Centre de coopération internationale en recherche agronomique pour le développement [CIRAD] : UMR51
Résumé : 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.
Mots-clés : C++ Python R
Type de document :
Communication dans un congrès
48èmes Journées de Statistique de la SFdS Montpellier, May 2016, Montpellier, France. pp.6
Liste complète des métadonnées

Littérature citée [8 références]  Voir  Masquer  Télécharger

https://hal.inria.fr/hal-01316276
Contributeur : Pierre Fernique <>
Soumis le : lundi 16 mai 2016 - 14:00:21
Dernière modification le : samedi 27 janvier 2018 - 01:31:37
Document(s) archivé(s) le : mercredi 16 novembre 2016 - 05:43:38

Fichier

submission_167.pdf
Fichiers produits par l'(les) auteur(s)

Identifiants

  • HAL Id : hal-01316276, version 1

Collections

Citation

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〉

Partager

Métriques

Consultations de la notice

319

Téléchargements de fichiers

149