@lsmn
2015-05-25T13:56:33.000000Z
字数 785
阅读 2908
C++
Cling
REPL
LLVM
Clang
Cling是一款交互式C++解释器,以LLVM和Clang为基础构建,其目标是通过超越编码-编译-运行-调试这个惯常的C++工作流程提供生产力的飞跃。
Cling是一款交互式C++解释器,以LLVM和Clang为基础构建,其目标是通过超越编码-编译-运行-调试这个惯常的C++工作流程提供生产力的飞跃。
Cling提供了一个读取-求值-输出循环(REPL),类似常见的Unix shell,并支持Emacs绑定。使用Cling可以测试C++代码片段,而不需要创建文件、包含头文件等等。使用REPL的主要好处是可以在极短的时间内测试一个想法,而不需要等待构建系统编译代码。REPL在学习一门语言时也非常有用,因为它让试用语言特性变得更简单。
ROOT是Cern的数据分析框架,Cling即是由该框架背后的团队开发完成,作为现有的命令行C/C++解释器CINT的一个替代方案。目前,在粒子物理学领域中,许多实验中都用到了ROOT,包括大型“强子对撞器(Large Hadron Collider)”。
Cling可以解析Clang所能解析的一切内容,并且还支持一些CINT特有的C++扩展。ROOT开发团队列举了Cling提供的主要好处,其中包括使用生产级解析器、JIT允许不使用封装器直接进行库调用、使用独立的解析器和执行引擎。
Cling在GitHub上开源。用户既可以使用每日构建的二进制包进行安装,也可以从源代码构建。官方的一体化构建脚本支持基于Unix的系统,而Windows上的手动构建过程可以借助CMake实现。此外,Gallagher Pryor介绍了针对ARM平台构建Cling的步骤,这比针对x86平台进行构建要复杂得多,因为开发团队没有在他们的构建脚本中直接提供这种支持选项。