Ch interpreter

From Seo Wiki - Search Engine Optimization and Programming Languages

Jump to: navigation, search
Ch (pronounced /ˌsiːˈeɪtʃ/) is a cross-platform C and C++ interpreter. It is provided by SoftIntegration, Inc for C/C++ users. Ch is useful for scripting, shell programming, 2D/3D plotting, numerical computing, and can be embedded in other applications to add scripting capability. Ch can be used for both server-side and client-side web development. It runs under Windows, Linux, Mac OS X and some versions of Unix. Ch supports C90 and major C99 features, but it doesn't support full C++ features.



C/C++ 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.


"Hello, world!" in Ch

There are two ways to run Ch code. One is:

   printf("Hello world!\n");

Another is:

   #include <stdio.h>
   int main() {
       printf("Hello world!\n");

Ch also supports interactive shell command and C statements.

 > int i, *p, **p2     // i is an integer, p pointer, p2 double pointer
 > i=10                // i is assigned value 10
 > p=&i                // p points to address of i
 > *p                  // the memory pointed by p has value 10 
 > p2=&p               // p2 points to address of p
 > **p2                // the memory pointed by the pointer at p2 has value 10

Numerical computing in Ch

   #include <stdio.h>
   #include <array.h>
   int main() {
       array double A[2][3] = {1, 2, 3,
                           4, 5, 6};
       array double B[3][2];
       printf("A= \n%f \n", A+A);
       B = 2*transpose(A);
       printf("B= \n%f \n", B);

The output is:

   2.000000 4.000000 6.000000
   8.000000 10.000000 12.000000 
   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:

   #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 <math.h>
  #include <chplot.h>
  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

External links

Personal tools

Served in 0.082 secs.