Ch is an embeddable C/C++ interpreter for cross platform scripting, 2D/3D plotting, shell programming, numerical computing and embedded scripting. Ch supports Windows, Linux,Solaris, HP-UX, FreeBSD and Mac OSX. Ch can be easily interface with binary C/C++ library, andbe embeded or plugin into other C/C++ application programs as scripting engine. Ch Standard Edition is free for commercial and non-commercial use in all platforms.
Embedable C/C++ interpreter Ch 4.7 released
Submitted by xiaodong xzhou 2004-09-28 General Development 11 Comments
How many of you on this site actually comprehend just how undescribably cool this product is?
Please correct the link in the news brief as it has an extra quotation mark at the end, resulting in page not found error.
There is an unmatched quote in the html code.
IF you find such things, EMAIL the editors, don’t post here because none of us are reading comments. It was out of luck that I read this thread.
This is amazingly cool! I no longer have to wait for compiles (not long on my new computer anymore) just to try out a 30 line program! This is so cool! And it can do 2d/3d plotting! This seems like a grown up QBasic (loved QBasic as a kid)! Only cooler! I’m so excited!
@Duncan Domingue: There is already an open-sourced and cross-platform C and C++ interpreter, used mainly in data analysis of high-energy physic experiments. It is called CINT:
But I am missing the post important information: How C++ standard compliant is the Ch? CINT, for example, do have some syntax flaws in its interpreter, e.g. interpreting the C++ “::” correctly within a ?: statement.
Ylai, there’s a little bit more on this page…
“Ch supports more new features added in the latest ISO C99 Standard than most existing C compilers. Ch is the first implementation of complex numbers, variable length arrays (VLAs), IEEE-754 floating-point arithmetic, generic mathematical functions in C99.
Many salient C++ features including classes, objects and encapsulation for object-based programming (Brain-damaging features are excluded)…”
[See, nobody mods down Rusty the Chicken]
Soft Integration seems to have its own ideas about C++ standards compliance (which may be just fine, I won’t guess)…
“Many complicated features in C++ are intentionally left out to retain the simplicity of Ch. The following C++ features are available in Ch:
– Member function.
– Mixed code and declaration.
– The this-> pointer.
– Reference type and pass-by-reference.
– Function-style type conversion.
– The private/public data and functions in class. Ch is compatible with C++ that by default, members of a class definition are assumed to be private until a `public’ declaration is given.
– Static member of class/struct/union.
– The new and delete operators.
– The constructor and destructor.
– Polymorphic functions.
– The scope resolution operator :: .
– The I/O cout, cerr, cin with endl.
Ch supports classes in C++ with the following additional capabilities:
– Classes inside member functions.
– Nested functions with classes.
– Pass member function to argument of pointer-to-function type of functions.”
It seems to me that an important feature is missing from the list: templates
Templates are obviously one of the most complex features of C++ so I can understand why they don’t support them.
I can’t even think about writing C++ code without the standard vector, list and other STL container or their equivalent in other libraries.
let me see:
# grep csh /etc/passwd | wc -l
# grep bash /etc/passwd | wc -l
Ch Shell versus C Shell
“…In terms of shell programming, Ch will be as close to C shell as possible, but no closer. Ch shell is a genuine C shell and portable in Windows and Unix. The semantics of history and alias features in Ch are similar to C-shell. But the syntax is different from C-shell because Ch is a superset of C. The following table highlights the syntax differences between Ch shell and C shell, but with the same semantics…”