Ch is an embeddable cross platform C/C++ interpreter for scripting, shell programming, 2D/3D plotting, numerical computing and embedded scripting.
It is freely available from SoftIntegration.
The following is a list of major ch supported features:
- A complete C interpreter supporting all features in the ISO C90 Standard.
- Wide characters in Addendum 1 for C90.
- The latest ISO C99 Standard features such as complex numbers, variable length arrays (VLAs), IEEE-754 floating-point arithmetic, generic mathematical functions.
- Easy interface with C/C++ binary libraries using SDK
- Many salient C++ features including classes, objects and encapsulation for object-based programming.
- Complex IEEE floating-point arithmetic with complex metanumbers ComplexInf and ComplexNaN.
- Assumed-shape arrays for passing multi-dimensional arrays of different sizes to the same argument of a function.
- Nested functions and nested classes for modular programming.
- Interactive execution of C statements provides a perfect solution for teaching and classroom demos.
- A very-high level language (VHLL) environment for shell programming to automate tasks and system administration.
- Safe Ch with built-in secure sandbox and Ch applet for world-wide distributed network computing.
- Built-in string type with automatic memory management and advanced text processing capabilities for shell programming and script computing.
- Adjustable array bounds and auto array bound checking
- TCP/IP socket/WinSock for network computing.
- POSIX for portable scripting.
- Cross platform Unix utilities and commands such as vi, ls, awk, sed, mv, rm, cp, find, grep, etc.
- Advanced numerical computing features such as computational arrays as first-class objects for LAPACK, linear algebra and matrix computations.
- Embeddable scripting engine
- User-friendly 2D/3D graphical plotting.
- An increasing number of third party products and user contributed code], such as OpenGL, GTK+, Microsoft Windows API's, X/Motif toolkit on Unix/Linux, Common Gateway Interface (CGI) and Open Database Connectivity (ODBC) etc.