我很好奇是否有人使用过UnderC,Cint,Cling,Ch或任何其他C++解释器并且可以分享他们的经验.
注意:接下来是CINT特定的,但考虑到它可能是最广泛使用的 C++解释器,它可能对它们都有效.
作为一名广泛使用CINT的粒子物理研究生,我应该警告你.虽然它确实"有效",但它正在被逐步淘汰,而那些花费一年多时间在粒子物理学中的人通常会因为以下几个原因而学会避免它:
由于其作为C解释器的根源,它无法解释C++的一些最关键的组件.例如,模板并不总是有效,因此不鼓励使用使C++如此灵活和可用的东西.
它比最低限度优化的C++慢(至少5倍).
调试消息比g ++生成的消息更加神秘.
范围与编译的C++不一致:看到表单的代码是很常见的
if (energy > 30) { float correction = 2.4; } else { float correction = 6.3; } somevalue += correction;
而任何工作的C++编译器都会抱怨correcton
已超出范围,CINT允许这样做.结果是CINT代码不是真正的C++,只是看起来像它.
简而言之,CINT没有C++的优点,而且还有一些缺点.
由于CINT包含在ROOT框架中,因此CINT仍在使用的事实可能更具历史意外.回到它写的时候(20年前),真正需要一种用于交互式绘图/拟合的解释语言.现在有很多软件包可以填充这个角色,其中很多都有数百个活跃的开发人员.
这些都不是用C++编写的.为什么?很简单,C++并不意味着被解释.例如,静态类型可以在编译期间为优化带来巨大的收益,但如果只允许计算机在运行时看到它,则主要是为了使代码混乱和过度约束.如果您能够使用解释性语言,学习Python或Ruby,那么即使您已经了解C++,您学习的时间也会比您在CINT上失败的要少.
根据我的经验,使用ROOT(您必须安装以运行CINT的软件包)的老研究人员最终将ROOT库编译为普通的C++可执行文件以避免CINT.年轻一代的人要么遵循这个主导,要么使用Python来编写脚本.
顺便说一句,ROOT(以及CINT)大约需要半个小时才能在相当现代的计算机上进行编译,并且偶尔会因新版本的gcc而失败.它是多年前一个重要目的的包装,但现在它显然已经显示出它的年龄.查看源代码,你会发现数百个不赞成的c风格的演员表,类型安全的巨大漏洞,以及大量使用全局变量.
如果您要编写C++,请编写C++,因为它是要编写的.如果你绝对必须拥有C++解释器,那么CINT可能是一个不错的选择.
还有就是坚持 CERN的项目基于C++解释的铛 -这是新的方法基于20年的经验ROOT CINT这是相当稳定的,由欧洲核子研究中心的家伙建议.
这是一个很好的Google Talk:介绍cling,一个基于clang/LLVM的C++解释器.
cint是粒子物理分析包ROOT的命令处理器.我经常使用它,它对我来说非常好用.
它相当完整,并且可以很好地使用已编译的代码(您可以加载已编译的模块以便在解释器中使用...)
迟编辑::复制后来的副本,因为那些问题的海报似乎不想在这里发布:igcc.从来没有亲自尝试过,但网页看起来很有希望.
我(大约一年前)与Ch一起玩耍,发现它相当不错。