views:

1091

answers:

9

Duplicate: http://stackoverflow.com/questions/69539/have-you-used-any-of-the-c-interpreters-not-compilers/

I was wondering if there is something like an interpreter for C. That is, in a Linux terminal I can type in "python" and then code in that interpreter. (I'm not sure interpreter the right word). This is really helpful for testing different things out and I'm curious if something similar exists for C. Though I doubt it. The only thing I can think of that would do it would be the C shell...

+3  A: 

cinterp is one for a start.

paxdiablo
+1  A: 

Probably. There are several for c++. See http://stackoverflow.com/questions/69539/have-you-used-any-of-the-c-interpreters-not-compilers/72792#72792 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.

dmckee
+9  A: 

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 -
Adam Davis
I wish a version of CH was available under an OSI approved license, so it could be distributed. You can design really nice utilities using their interpreter, unfortunately they're just too problematic to bundle.
Tim Post
That would be nice. Freeware is better than nothing, but until someone does it...
Adam Davis
+2  A: 

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

Rob Lachlan
+2  A: 

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.

CMS
A: 

As an aside, the term you are looking for is REPL (Read Evaluate Print Loop).

Travis
+1  A: 

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

TokenMacGuy
+1  A: 

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

Javed Ahamed
+1  A: 

Check out tcc

none