ClingはLLVMとClang上に構築された対話型C++インタープリタだ。コーディング-コンパイル-実行-デバッグというC++の通常のワークフローを超えることで、生産性を飛躍的に高める可能性がある。
ClingはよくあるUnixシェルによく似たREPL (read-eval-print loop) を提供し、Emacsバインディングをサポートする。Clingを使うことで、ファイルを作成してヘッダをインクルードするといった必要なしに、C++スニペットをテストすることができる。REPLを使うことの大きなメリットは、アイデアを即座にテストできるところにある。ビルドシステムがコードをコンパイルするのを待つ必要はないわけだ。またREPLを使うと言語機能を簡単に試せるので、プログラミング言語を学習するときにも大いに役立つ。
ClingはCERNのROOTデータ分析フレームワークを支援するグループにより、彼らのこれまでのCINTコマンドラインC/C++インタープリタを置き換えるものとして開発された。ROOTは素粒子物理学における実験の多くで使われていることが知られている。これには大型ハドロン衝突型加速器も含まれる。
Clingは、Clangができることすべてをパースすることができ、いくつかのCINT固有のC++拡張をサポートしている。ROOT開発チームはClingの主なメリットとして、製品レベルのパーサーの使用、ラッパーなしにライブラリ内への呼び出しが可能なJIT、分離されたパーサーと実行エンジンの使用を挙げている。
ClingはGitHubにあり、nightlyバイナリをインストールすることもできるし、ソースからビルドすることもできる。公式のオールインワン・ビルドスクリプトはUnixベースのシステムをサポートするが、WindowsでもCMakeを使って手動ビルド可能だ。さらに、Gallagher Pryor氏はARMプラットフォーム向けにClingをビルドする手順を説明している。開発チームはビルドスクリプトでこれを直接サポートしていないため、手順はx86向けのビルドよりもかなり複雑だ。