Cling 旨在提供一款高性能的 C++ REPL

阅读数:2055 2015 年 5 月 25 日

话题: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 平台进行构建要复杂得多,因为开发团队没有在他们的构建脚本中直接提供这种支持选项。

查看英文原文:Cling Aims to Provide a High-performance C++ REPL