Products > Ch Professional Edition

Ch Professional
Introduction
System Requirements
FAQ
Demos
Documentation
Ch Professional Edition
Buy now Try Now
Ch Professional Edition is a C/C++ compatible interactive platform for scientific computing and scripting.

Ch Professional is especially effective for teaching and learning Introduction to Computing, Algorithms, Computer-Aided Problem Solving, and Computer Programming. Ch can execute C/C++ code directly without compilation and without intermediate code.

Ch Professional Edition has the following major features:


"We are using Ch for teaching computer science and scientific computing. We are very pleased to have such a scientific computing environment with C as programming language. It is as powerful as Matlab."

-- Francois Auger, Professor, University of Nantes, France.

"When I want to satisfy my numerical interests, I can just extend my use of Ch. I do not have to learn an entirely new language with subtly different semantics to one that I am used to. The time it will save in programming mathematical problems will soon justify the cost."

--- Francis Glassborow, Chairman of the Association of C & C++ Users in C Vu Magazine

Read More Testimonials

1. A cross-platform C/C++ interpreter

Ch is a cross-platform C/C++ interpreter. Ch is compliant with the ISO C Standard C90, supports most features in C99 and classes in C++ . It supports many industry standards with over 8,000 C functions, including POSIX, socket/Winsock, X11/Motif, OpenGL, ODBC, C LAPACK, GTK+, Win32, XML, CGI, etc. C/C++ programs can run in Ch without compilation across different platforms.

2. Interactive for rapid prototyping and learning C/C++

C/C++ expressions, statements, functions, and programs can be executed interactively in a Ch command window. It can be used for rapid prototyping. As an instructional tool, instructors can use it in a classroom quickly and intuitively for illustration and answering student questions. It lowers the barrier for learning C/C++. It helps students understand and master difficult topics in C/C++ such as data types, input/output format, pointers, structures, arrays. Students can easily learn C/C++ like learning BASIC. For example

> double f = 12.345  // declare variable f
> 2*f                // calculate 2f
24.6900
> printf("%8.2lf", f)// field with 8, precision 2
  12.35
> double *p          // declare variable p 
> p = &f             // p points to f
00AC81A0             // the address of f
> *p                 // the value pointed by p
12.3450
> p[0]               // treat p as an array
12.3450

As another example, after the random number generator is seeded with a time value in srand(time(NULL). the function rand() is called to generate two random numbers. The function add() which calls the mathematical function sqrt() is defined at the prompt and then used.

> srand(time(NULL))
> rand()
4497
> rand()
11439
> double add(double a, double b) { return a+b+sqrt(2);}
> double c
> c = add(10.0, 20)
31.4142

3. The most user-friendly integrated development environment (IDE) for learning C/C++

ChIDE is the most user-friendly IDE for beginners to learn fundamentals of computer programming in C/C++ across different platforms.

  • ChIDE supports the user interface in over 30 local languages such as Japanese, German, French, and Chinese on different platforms. It has many abbreviations for quickly writing and editing C/C++ code, including a convenient header for homework assignment. It can automatically indent code with syntax highlighting.

  • Extensive and user-friendly debug features. You can set breakpoints, run a program step by step, watch and change values of variables during the program execution, inspect variables in different stacks with different colors, etc. ChIDE is especially developed for teaching and learning computer programming in C/C++. For example, step-by-step execution of a function helps students understand and master difficult topics such as program logic, control flow, selection statements, loops, functions, function argument pass-by-value, pass-by-reference, local and global variables, etc.

    ChIDE for plotting

  • ChIDE is the most pedagogically effective IDE for instructors to make classroom presentations while quickly modifying programs to demonstrate different programming features and concepts, or respond to students' questions. The font size can be changed quickly for classroom presentation.
  • ChIDE can be used with your favorite C/C++ compilers. It is pre-configured to work with Microsoft Visual Studio C++ compiler in Windows and GNU gcc/g++ in Unix. It is flexible and can be configured to use other compilers. You can easily switch back-and-forth between interpretive and compile/link based execution of C/C++ programs. It helps students understand how compiler works.

4. Very high-level shell programming and cross-platform scripting

Ch is a C compatible shell, similar to Unix and MS-DOS shells. Ch is a very high-level language (VHLL). Ch in Windows includes more than 250 commonly-used Unix commands such as vi, ls, awk, and sed for portable shell programming. Ch bridges the gap between the C language and shell languages. With its built-in string type and many enhanced scripting features, Ch can be used for cross-platform scripting to automate repetitive tasks, system administration, regression test, and hardware test. Ch can be used to learn Unix/Linux in a familiar Windows environment. C/C++ programs can also be compiled in a Ch comman shell.

5. The simplest numerical computing in C/C++

Ch has built-in type-generic mathematical functions and computational arrays for linear algebra and matrix computations. It contains advanced high-level numerical functions. Complicated engineering and science problems can be solved conveniently in Ch. For example, the linear system equation b = A*x can be written verbatim in Ch.

For MATLAB® and Mathematica® users, the functions and feature comparison between Ch and MATLAB/Mathematica can be found at below.

The example below shows interactive execution for arithmetic of computational arrays, transpose and inverse of matrices.


> array double a[2][3] = {1,2,3,4,5,6}, b[2][2]
> b = a*transpose(a)
14.0000 32.0000
32.0000 77.0000
> b*inverse(b)
1.0000 0.0000
0.0000 1.0000
> a = 100*a + 5
105.0000 205.0000 305.0000
405.0000 505.0000 605.0000

6. The simplest 2D/3D graphical plotting in C/C++

Ch provides the simplest possible solution for two- and three-dimensional graphical plotting within the framework of C/C++ for rapid application development and visualization. It can be used conveniently for visualizing engineering and science problems. Its plotting engine is based on Gnuplot.

  • Ch contains a plotting class in C++ with over 100 member functions for conveniently creating and manipulating two- and three-dimensional plots.
  • Ch has easy-to-use high-level plotting functions plotxy(), fplotxy(), plotxyf(), plotxyz(), fplotxyz(), and plotxyzf() using data from arrays, functions, and data files conveniently.

    Here is a simple code from Ch Shell to generate plotting: 
    
                       > array double x[36], y[36]
                       > linspace(x, 0, 6.28)
                       > y = sin(x)                            
                       > plotxy(x, y)
    

  • Numerous plot types in different coordinates and shapes
  • Plots can be generated for display on the screen, display inside a Web browser through a Web server, or saved in a file with a variety of different file formats, including PNG, JPEG, GIF, Postscript, LaTeX, etc.
  • A displayed plot can be conveniently copied and pasted into other applications such as Word in Windows.
  • Ch is compatible with SoftIntegration Graphical Library (SIGL). The plotting class and functions in Ch are supported in SIGL. The program using the plotting feature can be either run in Ch interpretively without compilation or compiled using a C++ compiler with SIGL.

7. Quick animation

Ch contains QuickAnimation, a program for quick animation and display of various objects. It can be used to conveniently visualize and simulate engineering and science problems. QuickAnimation is especially suitable for animation of two-dimensional mechanical systems. It can stimulate students' interest in computing and computer programming.

Ch QuickAnimation Ch QuickAnimation
Ch QuickAnimation

8. Ch SDK for interfacing with binary C/C++ libraries

Ch SDK can easily integrate the existing C/C++ libraries as Ch scripting libraries. Functions and classes in static or dynamical libraries can be invoked in a Ch script file or Ch command shell. Ch SDK requires neither any modification of your C/C++ source code and libraries, nor re-compilation of your applications and libraries. It enables you to have a powerful C/C++ interpreter to control your systems and applications across different platforms. Your binary modules can readily be executed interpretively and shared with other users with Ch SDK. It creates a greater benefit for code reuse.

9. A rich set of toolkits and packages

Ch supports an increasing number of C/C++ libraries and third party software packages, as well as toolkits and packages developed using Ch with advanced numerical, graphical, and animation capabilities such as Ch Control System Toolkit and Ch Mechanism Toolkit.