Cargando…
Cling - The LLVM-based C++ Interpreter
<!--HTML-->Cling (http://cern.ch/cling) is a C++ interpreter, built on top of clang (http://clang.llvm.org) and LLVM (http://llvm.org). Like its predecessor CINT, cling offers an interactive, terminal-like prompt. It enables exploratory programming with rapid edit / run cycles. The ROOT team...
Autor principal: | |
---|---|
Lenguaje: | eng |
Publicado: |
2012
|
Materias: | |
Acceso en línea: | http://cds.cern.ch/record/1460543 |
_version_ | 1780925235173785600 |
---|---|
author | Vasilev, Vasil Georgiev |
author_facet | Vasilev, Vasil Georgiev |
author_sort | Vasilev, Vasil Georgiev |
collection | CERN |
description | <!--HTML-->Cling (http://cern.ch/cling) is a C++ interpreter, built on top of clang (http://clang.llvm.org) and LLVM (http://llvm.org). Like its predecessor CINT, cling offers an interactive, terminal-like prompt. It enables exploratory programming with rapid edit / run cycles.
The ROOT team has more than 15 years of experience with C++ interpreters, and this has been fully exploited in the design of cling. However, matching the concepts of an interpreter to a compiler library is a non-trivial task; we will explain how this is done for cling, and how we managed to implement cling as a small (10,000 lines of code) extension to the clang and llvm libraries.
The resulting features clearly show the advantages of basing an interpreter on a compiler. Cling uses clang's praised concise and easy to understand diagnostics. Building an interpreter on top of a compiler library makes the transition between interpreted and compiled code much easier and smoother. We will present the design, e.g. how cling treats the C++ extensions that used to be available in CINT. We will also present the new features, e.g. how C++11 will come to cling, and how dictionaries will be simplified due to cling. We describe the state of cling's integration in the ROOT Framework. |
id | cern-1460543 |
institution | Organización Europea para la Investigación Nuclear |
language | eng |
publishDate | 2012 |
record_format | invenio |
spelling | cern-14605432022-11-02T22:23:46Zhttp://cds.cern.ch/record/1460543engVasilev, Vasil GeorgievCling - The LLVM-based C++ InterpreterComputing in High Energy and Nuclear Physics (CHEP) 2012Conferences<!--HTML-->Cling (http://cern.ch/cling) is a C++ interpreter, built on top of clang (http://clang.llvm.org) and LLVM (http://llvm.org). Like its predecessor CINT, cling offers an interactive, terminal-like prompt. It enables exploratory programming with rapid edit / run cycles. The ROOT team has more than 15 years of experience with C++ interpreters, and this has been fully exploited in the design of cling. However, matching the concepts of an interpreter to a compiler library is a non-trivial task; we will explain how this is done for cling, and how we managed to implement cling as a small (10,000 lines of code) extension to the clang and llvm libraries. The resulting features clearly show the advantages of basing an interpreter on a compiler. Cling uses clang's praised concise and easy to understand diagnostics. Building an interpreter on top of a compiler library makes the transition between interpreted and compiled code much easier and smoother. We will present the design, e.g. how cling treats the C++ extensions that used to be available in CINT. We will also present the new features, e.g. how C++11 will come to cling, and how dictionaries will be simplified due to cling. We describe the state of cling's integration in the ROOT Framework.oai:cds.cern.ch:14605432012 |
spellingShingle | Conferences Vasilev, Vasil Georgiev Cling - The LLVM-based C++ Interpreter |
title | Cling - The LLVM-based C++ Interpreter |
title_full | Cling - The LLVM-based C++ Interpreter |
title_fullStr | Cling - The LLVM-based C++ Interpreter |
title_full_unstemmed | Cling - The LLVM-based C++ Interpreter |
title_short | Cling - The LLVM-based C++ Interpreter |
title_sort | cling - the llvm-based c++ interpreter |
topic | Conferences |
url | http://cds.cern.ch/record/1460543 |
work_keys_str_mv | AT vasilevvasilgeorgiev clingthellvmbasedcinterpreter AT vasilevvasilgeorgiev computinginhighenergyandnuclearphysicschep2012 |