有 C 语言的翻译吗?

我想知道是否有类似 C 语言的解释器。也就是说,在 Linux 终端中,我可以输入“ python”,然后在该解释器中编写代码。(我不知道该怎么翻译)。这对于测试不同的东西真的很有帮助,我很好奇 C 是否存在类似的东西,尽管我对此表示怀疑。我唯一能想到的就是 C 外壳。

101901 次浏览

cinterp is one for a start.

Probably. There are several for c++. See Have you used any of the C++ interpreters (not compilers)? for examples. Certainly cint will eat nearly any c code with good results, and tcc is so fast that you can use it like a interpreter.

There are many - if you narrow down the scope of your question we might be able to suggest some specific to your needs.

A notable interpreter is "Ch: A C/C++ Interpreter for Script Computing" detailed in Dr. Dobbs:

Ch is a complete C interpreter that supports all language features and standard libraries of the ISO C90 Standard, but extends C with many high-level features such as string type and computational arrays as first-class objects.

Ch standard is freeware but not open source. Only Ch professional has the plotting capabilities and other features one might want.

I've never looked at this before, but having a c interpreter on hand sounds very useful, and something I will likely add to my toolset. Thanks for the question!


Edit:

Just found out that one of my favorite compilers, TCC, will execute C scripts:

It also handles C script files (just add the shebang line "#!/usr/local/bin/tcc -run" to the first line of your C source code file on Linux to have it executed directly.

TCC can read C source code from standard input when '-' is used in place of 'infile'. Example:

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

It has been done, even though the vast majority of C work is compiled. One example is CH

Give a look to the Ch Interpreter.

Ch is an embeddable C/C++ interpreter for cross-platform scripting, shell programming, 2D/3D plotting, numerical computing, and embedded scripting.

the ROOT project provides a very functional C and C++ interpreter called Cint. I'm quite fond of it. It takes a little getting used to interpretively, though.

TCC is a very good choice as well, but i'm not able to vouch for its REPL

I know we use CINT in class. It seemed pretty good you might want to give it a try!

Check Out iGCC

picoc - A very small C interpreter

PicoC is a very small C interpreter for scripting. It was originally written as the script language for a UAV's on-board flight system. It's also very suitable for other robotic, embedded and non-embedded applications.

ccons appears to satisfy your constraints:

The goal of the ccons project is to create an interactive console for the C programming language, similar to "python" and "irb" for Python and Ruby respectively. The project builds on top of clang and llvm.

You can use CompCert. Here are some examples: http://compcert.inria.fr/man/manual004.html

More recently there is Cling (based on LLVM/Clang)

http://root.cern.ch/drupal/content/cling

CERN has a toolkit called ROOT, which is meant mainly for scientific or data analysis etc.. purposes but it has a Clang - based C/C++ Interpreter called Cling.

They were using a C interpreter called CINT before they adapted Cling. CINT is lightweight & still seems to be available for download.

I think you may get some other by carefully searching through Wikipedia list articles.