有C的翻译器吗?[关闭]


111

我想知道是否有类似C的解释器。也就是说,在Linux终端中,我可以输入“ python”,然后在该解释器中进行编码。(我不确定解释正确的词)。这对于测试不同的东西真的很有帮助,我很好奇C是否存在类似的东西。尽管我对此表示怀疑。我唯一能想到的就是C shell ...


5
所需的正确单词是“ shell”或“ prompt”或“ REPL”(Read-Eval-Print-Loop,指的是必须连接以在Lisp中进行Lisp解释器的4个Lisp命令)。口译员会工作的。
克里斯·卢茨

1
顺便说一句,您正在寻找的术语是REPL(读取评估打印循环)。
tsimon


首选的词实际上是C的“交互式”环境。交互式环境打开特定于该语言的shell或提示。REPL也不错。
jcchuks

有关C / C ++的解释器和编译器的完整列表,请参见:thefreecountry.com/compilers/cpp.shtml
froggsy

Answers:


71

有很多 -如果您缩小问题范围,我们也许可以根据您的需求提出一些建议。

著名的解释器是Dobbs博士详细介绍的“ Ch:脚本计算的AC / C ++解释器 ”:

Ch是一个完整的C解释器,它支持ISO C90 Standard的所有语言功能和标准库,但是用许多高级功能(例如字符串类型和计算数组)作为一流的对象扩展了C。

Ch standard是免费软件,但不是开源软件。只有Ch专业人士才可能拥有绘图功能和其他功能。

我以前从没看过它,但是手头上有一个ac解释器听起来非常有用,而且我可能会在工具集中添加一些内容。谢谢你的提问!


编辑:

刚刚发现,我最喜欢的编译器之一TCC将执行C脚本:

它还处理C脚本文件(只需在Linux上的C源代码文件的第一行中添加shebang行“#!/ usr / local / bin / tcc -run”,即可直接执行它。

当使用“-”代替“ infile”时,TCC可以从标准输入中读取C源代码。例:

echo 'main(){puts("hello");}' | tcc -run -

2
我希望可以通过OSI批准的许可证获得CH的版本,因此可以分发它。您可以使用它们的解释器来设计非常好的实用程序,但不幸的是,它们太麻烦而无法捆绑。
蒂姆·波斯特

那样就好了。软件总比没有好,但是直到有人做到……
Adam Davis

奇怪的是,默认情况下tcc以状态退出10。看来您必须明确添加return 0捐赠echo 'main(){puts("hello"); return 0;}' | tcc -run -
Gregory Nisbet

18

picoc-一个很小的C解释器

PicoC是用于脚本编写的非常小的C解释器。它最初是作为无人机机载飞行系统的脚本语言编写的。它也非常适合其他机器人,嵌入式和非嵌入式应用程序。


9

ROOT项目提供了一个功能非常强大的C和C ++解释器Cint。我很喜欢 不过,这需要一点时间来适应解释性。

TCC也是一个很好的选择,但我无法为其REPL担保


1
ROOT团队不是要淘汰Cint吗?
Z玻色子2015年

@Zboson“欧洲核子研究组织已改用新的口译器,坚持。欧洲核子研究组织不再支持CINT”
endolith

ROOT坚持使用cint代替了cint。因此,保全可以作为更新的建议。(尽管-查看其他答案-紧贴是C ++,而不是C,如果有关系,尽管iirc cint也做了一些C ++)
pseyfert


7

看一下Ch解释器

Ch是可嵌入的C / C ++解释器,用于跨平台脚本编写,shell编程,2D / 3D绘图,数值计算和嵌入式脚本编写。





3

ccons似乎满足您的约束:

ccons项目的目标是为C编程语言创建一个交互式控制台,分别类似于Python和Ruby的“ python”和“ irb”。该项目建立在clang和llvm之上。





0

CERN有一个名为ROOT的工具包,主要用于科学或数据分析等目的,但它有一个基于Clang的C / C ++解释器Cling

在他们适应之前,他们使用的是C解释器CINTCling。CINT是轻量级的,似乎仍然可以下载。

我认为您可以通过仔细搜索Wikipedia列表文章来获得其他一些建议。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.