Loading...

Introducing cling, a C++ Interpreter Based on clang/LLVM

32,439 views

Loading...

Loading...

Transcript

The interactive transcript could not be loaded.

Loading...

Rating is available when the video has been rented.
This feature is not available right now. Please try again later.
Published on Jul 4, 2012

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.

Loading...

When autoplay is enabled, a suggested video will automatically play next.

Up next


to add this to Watch Later

Add to

Loading playlists...