【问题标题】:run interpret c++? [duplicate]运行解释 C++? [复制]
【发布时间】:2009-04-17 06:44:47
【问题描述】:

有没有一种方法可以让我运行 c++ 代码作为解释而不是编译?所以我可以即时编辑代码和编写函数?


相关:

【问题讨论】:

  • 虽然可能,但这并不是一个好主意。 C++ 真的很不适合解释器。它的基本优势——速度——消失了,它的缺点(相对低级,没有针对错误指针的错误检查等)仍然存在。并非所有事情都可以在解释器中完成。有很多更适合的解释语言,还有用于 C++ 的 jit 编译器——“编译和运行”,从用户的角度来看,它的行为非常像解释器,而实际上是编译的。

标签: c++ interpreted-language


【解决方案1】:

看看Ch,一个可嵌入的 C++ 解释器。

Ch 是一个可嵌入的 C/C++ 解释器 用于跨平台脚本,shell 编程, 2D/3D 绘图, 数值 计算和嵌入式脚本。通道 是一个免费且用户友好的 替代 C/C++ 编译器 初学者学习 C/C++。

【讨论】:

  • 我还是想知道为什么没有开源版本的ch。也许是因为没有人需要它?
【解决方案2】:

Ch 和 CINT(通常作为 ROOT 系统的一部分)将解释 C++。但是,我对 CINT 的体验并不好:语言支持不完整(特别是在涉及模板的情况下),执行速度要慢得多,例如存在错误历史。变量范围和循环退出,并且(IMO)它比它的价值更麻烦。作为一门语言,C++ 的设计非常不适合解释使用。

如果您需要运行解释型代码,为什么不使用现代解释型语言,例如 Python 或 Ruby?如果需要,可以使用 SWIG 之类的工具将它们连接到现有的 C/C++ 库。

【讨论】:

  • “设计不良”表明它是为这种用途而设计的。我会说“设计不合理,不合适”
  • Java 也是一种非常好的解释型语言 :)
【解决方案3】:

【讨论】:

    【解决方案4】:

    CINT (readme) 当然是单步的。不过,我不确定是否要即时修改。

    【讨论】:

      【解决方案5】:

      这并不能完全回答您的问题,但也许会有所帮助。

      MS C++ 编译器支持编辑并继续,它允许您在不关闭程序的情况下停止、进行更改、重新编译和继续。

      【讨论】:

        【解决方案6】:

        我在一月份的 CUSEC 演示营上看到了一个关于 ccons 的演示。它的目的是提供一个像 python 那样的交互式解释器。那时它还处于早期阶段,但给我留下了深刻的印象。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-11-27
          • 2010-09-30
          • 2017-07-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-24
          相关资源
          最近更新 更多