CH INTERPRETER
'Ch' (IPA pronunciation: ), is a commercial embeddable C/C++ interpreter. Ch is designed for using one C compatible language for all programming tasks.
Ch extends C and C++ for scripting, numerical computing and 2D/3D plotting, and embedded scripting. It can run in Windows, Linux, Mac OS X and various versions of Unix.
Ch supports the 1999 ISO C Standard (C99) and C++ classes. It is superset of C with
C++ classes. C99 major features such as complex numbers, variable length arrays (VLAs), IEEE-754 floating-point arithmetic and generic mathematical functions are supported. Wide characters in Addendum 1 for C90 is also supported.
As a C/C++ interpreter, Ch can be used as a scripting engine for your applications. It extends your applications with a C compatible scripting language.
Ch is a C-compatible shell similar to C-shell (csh). It can be used as login shell. Ch has a built-in string type for automatic memory allocation and de-allocation.
Ch has built-in 2D/3D graphical plotting features and computational arrays for
numerical computing. A 2D linear equation of the form ''b = A
★ x'' can be written verbatim in Ch.
There are two ways to run Ch code. One is:
# !/bin/ch
printf("Hello world!
");
Another is:
# !/bin/ch
#include
int main() {
printf("Hello world!
");
}
Note:# !/bin/ch is optional.
# include
# include
int main() {
array double A[2][3] = {1, 2, 3,
4, 5, 6};
array double B[3][2];
printf("A=
%f
", A+A);
B = 2
★ transpose(A);
printf("B=
%f
", B);
}
The output is:
A=
2.000000 4.000000 6.000000
8.000000 10.000000 12.000000
B=
2.000000 8.000000
4.000000 10.000000
6.000000 12.000000
Find and compile all .c files into .o in the current directory for which the .o file is old or absent:
#!/bin/ch
#include <sys/stat.h>
struct stat cstat, ostat;
string_t c, o;
foreach (c; `find . -name "
★ .c"`)
{
o=`echo $c | sed 's/.c$/.o/'`;
stat(o, &ostat); stat(c, &cstat);
if (ostat.st_mtime > cstat.st_mtime)
{
echo "compiling $c to $o";
gcc -c -o "$o" "$c";
}
}
To plot a sine wave:
#include
#include
int main() {
int numpoints = 36;
array double x[numpoints], y[numpoints];
linspace(x, 0, 360); // assign x with values from 0 to 360 linearly
y = sin(x
★ M_PI/180);
plotxy(x, y, "Ch plot", "xlabel", "ylabel");
}
★ CINT
★ SoftIntegration Home Page
Ch extends C and C++ for scripting, numerical computing and 2D/3D plotting, and embedded scripting. It can run in Windows, Linux, Mac OS X and various versions of Unix.
Features
C/C++ compatible interpreter
Ch supports the 1999 ISO C Standard (C99) and C++ classes. It is superset of C with
C++ classes. C99 major features such as complex numbers, variable length arrays (VLAs), IEEE-754 floating-point arithmetic and generic mathematical functions are supported. Wide characters in Addendum 1 for C90 is also supported.
Embeddable scripting
As a C/C++ interpreter, Ch can be used as a scripting engine for your applications. It extends your applications with a C compatible scripting language.
Shell programming and cross-platform scripting
Ch is a C-compatible shell similar to C-shell (csh). It can be used as login shell. Ch has a built-in string type for automatic memory allocation and de-allocation.
2D/3D plotting and numerical computing
Ch has built-in 2D/3D graphical plotting features and computational arrays for
numerical computing. A 2D linear equation of the form ''b = A
★ x'' can be written verbatim in Ch.
Examples
"Hello, world!" in Ch
There are two ways to run Ch code. One is:
printf("Hello world!
");
Another is:
#include
int main() {
printf("Hello world!
");
}
Note:
Numerical computing in Ch
int main() {
array double A[2][3] = {1, 2, 3,
4, 5, 6};
array double B[3][2];
printf("A=
%f
", A+A);
B = 2
★ transpose(A);
printf("B=
%f
", B);
}
The output is:
A=
2.000000 4.000000 6.000000
8.000000 10.000000 12.000000
B=
2.000000 8.000000
4.000000 10.000000
6.000000 12.000000
Shell programming
Find and compile all .c files into .o in the current directory for which the .o file is old or absent:
#!/bin/ch
#include <sys/stat.h>
struct stat cstat, ostat;
string_t c, o;
foreach (c; `find . -name "
★ .c"`)
{
o=`echo $c | sed 's/.c$/.o/'`;
stat(o, &ostat); stat(c, &cstat);
if (ostat.st_mtime > cstat.st_mtime)
{
echo "compiling $c to $o";
gcc -c -o "$o" "$c";
}
}
2D/3D plotting in Ch
To plot a sine wave:
#include
#include
int main() {
int numpoints = 36;
array double x[numpoints], y[numpoints];
linspace(x, 0, 360); // assign x with values from 0 to 360 linearly
y = sin(x
★ M_PI/180);
plotxy(x, y, "Ch plot", "xlabel", "ylabel");
}
See also
★ CINT
External links
★ SoftIntegration Home Page
This article provided by Wikipedia. To edit the contents of this article, click here for original source.
psst.. try this: add to faves

العربية
中国
Français
Deutsch
Ελληνική
हिन्दी
Italiano
日本語
Português
Русский
Español