Google Tech Talk March 15, 2012 Presented by Axel Naumann, CERN. ABSTRACT At CERN, 50 million lines of C++ code are being used by about 10 thousand physicist. Many of them are not programming experts. To make writing C++ more accessible, ROOT (http://root.cern.ch), one of the core tools at CERN, has been using the CINT C++ interpreter for more than 15 years. CINT also opens up a whole new world of dynamic programming: plug-ins, signal/slot, runtime evaluation, reflection. In particular, the latter is fundamental to CERN and its petabytes of Large Hadron Collider data per year, which are created, serialized, and analyzed as C++ objects. Given the complexity of writing C++, Python is widely used to interface and steer C++ components. Using a SWIG-like approach to interfacing C++ and Python does not scale to CERN's context. I will present our completely dynamic, bidirectional alternative which leverages the CINT and Python reflection data. Based on our experience, we (a collaboration between CERN and Fermilab, US) have decided to replace CINT with a new interpreter: cling (http://cern.ch/cling). It is built on top of clang (http://clang.llvm.org) and LLVM (http://llvm.org). This gives us just-in-time compilation, a high-quality front-end and compiler-grade reflection data. I will present how we built an interpreter out of compiler libraries. Speaker Info: Axel is a physicist by education. After stopovers in Germany, The Netherlands (NIKHEF) and the US (Fermilab) he became scientist at CERN in 2005. As a member of the ROOT (http://root.cern.ch) team, Axel is responsible for interpreters and reflection. He is involved in many other areas like algorithms and data structures, bringing software to current architectures (multi-code, vectorization) and software quality assurance. He recently became CERN's representative to the ISO C++ Standards Committee.
Get notified about new features and conference additions.