Introducing cling, a C++ Interpreter Based on clang/LLVM
Sign in to YouTube
Sign in to YouTube
Sign in to YouTube
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.
-
Category
-
License
Standard YouTube License
Loading...
Loading...
Loading...
Loading...
Loading...
-
26:45
David Starkey on Queen Elizabeth Iby AllanGreggFeatured
15,570
-
1:29:54
Think faster focus better and remember moreRewiring our brain to stay younger...by GoogleTechTalks
400,705 views
-
51:58
Life of a C++ Standardby GoogleTechTalks
10,535 views
-
1:10:02
Building Software at Google Scale Tech Talkby GoogleTechTalks
19,777 views
-
49:55
The Economics of Interaction: How We Can Use Microeconomics to Describe System Interactionby GoogleTechTalks
4,772 views
-
0:51
Clang compiles C++ as you edit in Sublime Text 2by Don Williamson
11,065 views
-
56:56
Jack Kornfield: The Ancient Heart of Forgivenessby greatergoodscience
38,758 views
-
48:32
Tom LaTourrette: Nuclear Energy After Fukushimaby GoogleTechTalks
5,394 views
-
4:42
My advice to young people - Donald Knuth [video]by webofstories
69,042 views
-
54:57
C++ Stylisticsby GoogleTechTalks
53,668 views
-
1:09:03
Let's Go Further: Build Concurrent Software using the Go Programming Languageby GoogleTechTalks
20,530 views
-
59:41
The Art of Living Every Minute of Your Lifeby UCtelevision
93,944 views
-
2:09:34
CERN Higgs Boson Discovery Seminar/Lectureby Muon Ray
54,544 views
-
2:14
LLVMLlinux - Linux Kernel built with clang - booting into desktop !by Jan-Simon Möller
3,051 views
-
4:39
Confirmed: CERN discovers new particle likely to be the Higgs bosonby RussiaToday
131,340 views
-
17:52
Why Should I Code in C?by OreillyMedia
13,143 views
-
2:43
Bjarne Stroustrup: How to Code Like Bjarne Stroustrupby bigthink
62,056 views
-
53:08
Modeling Noisy Data : Towards a Generic Framework Coupling Morse Theory and Persistence Theoryby GoogleTechTalks
4,660 views
-
1:15:59
LLVM 2.0by GoogleTechTalks
25,070 views
-
1:20:24
Multipath TCPby GoogleTechTalks
12,836 views
- Loading more suggestions...
Top Comments
rkulla 10 months ago
from boson import higgs
Sign in to YouTube
Sign in to YouTube
cantares1 10 months ago
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 ..
Sign in to YouTube
Sign in to YouTube
All Comments (15)
jehandadkhan 3 days ago
Can we create breakpoints in code and have cling fire the function and debug it ?
Sign in to YouTube
Sign in to YouTube
doug65536 2 months ago
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 to YouTube
André Freitas 4 months ago
How do we link a source file in cling?
Sign in to YouTube
Sign in to YouTube
Vassil Vassilev 6 months ago
Yes that is possible in principle. Have a look at cling::Transaction class.
Sign in to YouTube
Sign in to YouTube
labobo 7 months ago
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 to YouTube
ochgottnochma 7 months ago
Is it possible for cling to use C++ like Lisp? Accessing the own interpreted program at runtime?
Sign in to YouTube
Sign in to YouTube
zedboson 8 months ago
This is really cool. Testing .cc source on the fly while editing would be really helpful for me.
Sign in to YouTube
Sign in to YouTube
whotaughtyou 9 months ago
ACCURIST CHRONOGRAPH WR 100M SCREEN GREEN THE COCK AND BULL
Sign in to YouTube
Sign in to YouTube
laurent mallet 10 months ago
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 to YouTube
Mark Rebane 10 months ago
Thank you, I tried the link and had the same problem :)
Sign in to YouTube
Sign in to YouTube