Upload

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

GoogleTechTalks GoogleTechTalks·1,782 videos
146,863
12,518
Like     Dislike 5

Sign in to YouTube

Sign in with your Google Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to like GoogleTechTalks's video.

Sign in to YouTube

Sign in with your Google Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to dislike GoogleTechTalks's video.

Sign in to YouTube

Sign in with your Google Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to add GoogleTechTalks's video to your playlist.

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 icon Loading...

Loading icon Loading...

Loading icon Loading...

The interactive transcript could not be loaded.

Loading icon Loading...

Loading icon Loading...

Ratings have been disabled for this video.
Rating is available when the video has been rented.
This feature is not available right now. Please try again later.

Top Comments

  • rkulla

    from boson import higgs

    · 29

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate rkulla's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate rkulla's comment.
  • cantares1

    If someone want to follow the youtube link in the presentation.. that what looks like an "I" is the number one.. so it would be BrjV1ZgYbbA ..

    · 9

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate cantares1's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate cantares1's comment.

All Comments (15)

Sign in now to post a comment!
  • jehandadkhan

    Can we create breakpoints in code and have cling fire the function and debug it ?

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate jehandadkhan's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate jehandadkhan's comment.
  • doug65536

    I wish google would put proper closed captions on these. Would it really be that hard? The speaker in this video is unintelligible.

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate doug65536's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate doug65536's comment.
  • André Freitas

    How do we link a source file in cling?

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate André Freitas's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate André Freitas's comment.
  • Vassil Vassilev

    Yes that is possible in principle. Have a look at cling::Transaction class.

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate Vassil Vassilev's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate Vassil Vassilev's comment.
    in reply to ochgottnochma (Show the comment)
  • labobo

    Another clang compiler part that do not provide windows compatible binaries

    You make binaries for mac but not windows ?! God damn it !

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate labobo's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate labobo's comment.
  • ochgottnochma

    Is it possible for cling to use C++ like Lisp? Accessing the own interpreted program at runtime?

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate ochgottnochma's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate ochgottnochma's comment.
  • zedboson

    This is really cool. Testing .cc source on the fly while editing would be really helpful for me.

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate zedboson's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate zedboson's comment.
  • whotaughtyou

    ACCURIST CHRONOGRAPH WR 100M SCREEN GREEN THE COCK AND BULL

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate whotaughtyou's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate whotaughtyou's comment.
  • laurent mallet

    Excellent. I try it but i can't reload a source. I try the .U (as unload) command but it seems not implemented.

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate laurent mallet's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate laurent mallet's comment.
  • Mark Rebane

    Thank you, I tried the link and had the same problem :)

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate Mark Rebane's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate Mark Rebane's comment.
    in reply to cantares1 (Show the comment)
  • Loading comment...
Loading...
Loading...
Working...
Sign in to add this to Watch Later