Ch is a proprietary
cross-platform C and
C++ interpreter and scripting language environment, originally designed by Harry H. Cheng as a scripting language for beginners to learn mathematics, computing,
numerical analysis (numeric methods), and programming in C/C++. Ch is now developed and marketed by SoftIntegration, Inc. A student edition is freely available. Ch Professional Edition for Raspberry Pi is free for non-commercial use.
Ch can be embedded in C/C++ application programs. It has numerical computing and graphical plotting features. Ch is a combined shell and IDE. Ch shell combines the features of common shell and C language. ChIDE provides quick code navigation and symbolic debugging. It is based on embedded Ch, Scite and Scintilla.
Ch is written in C and runs on
Windows,
Linux,
macOS,
FreeBSD
FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
,
AIX,
Solaris,
QNX, and
HP-UX
HP-UX (from "Hewlett Packard Unix") is Hewlett Packard Enterprise's proprietary implementation of the Unix operating system, based on Unix System V (initially System III) and first released in 1984. Current versions support HPE Integrity Ser ...
. It supports C90 and major C99 features, but it does not support the full set of C++ features. C99 complex number, IEEE-754 floating-point arithmetic, and
variable-length array features were supported in Ch before they became part of the
C99 standard. An article published by ''Computer Reseller News'' (
CRN
Chromium nitride is a chemical compound of chromium and nitrogen with the formula CrN. It is very hard, and is extremely resistant to corrosion. It is an interstitial compound, with nitrogen atoms occupying the octahedral holes in the chromium latt ...
) named Ch as notable among C-based virtual machines for its functionality and the availability of third-party libraries.
Ch has many tool kits that extend its functions. For example, Ch Mechanism Toolkit is used for design and analysis of commonly used mechanisms such as four-bar linkage, five-bar linkage, six-bar linkage, crank-slider mechanism, and cam-follower system. Ch Control System Toolkit is used for modeling, design, and analysis of continuous-time or discrete-time linear time invariant (LTI) control systems. Both tool kits includes the source code.
Ch is now used and integrated into curriculum by many high schools and universities to teach computing and programming in C/C++. Ch has been integrated into free C-STEM Studio, a platform for learning computing, science, technology, engineering, and mathematics (C-STEM) with robotics. C-STEM Studio is developed by UC Davis Center for Integrated Computing and STEM Education (C-STEM). It offers the curriculum for K-12 students.
Ch supports LEGO Mindstorms NXT and EV3, Arduino, Linkbot, Finch Robot, RoboTalk and Raspberry Pi, Pi Zero, and ARM for robot programming and learning. It can also be embedded into the
LabVIEW system-design platform and development environment.
Features
Ch supports the 1999 ISO C Standard (C99) and C++ classes. It is a superset of C with C++ classes. Several major features of C99 are supported, such as complex numbers, variable length arrays (VLAs), IEEE-754 floating-point arithmetic, and generic mathematical functions. The specification for wide characters in Addendum 1 for C90 is also supported.
C++ features available in Ch include:
* Member functions
* Mixed code and declaration
* The ''
this'' -> pointer
* Reference type and pass-by-reference
* Function-style type conversion
* Classes
* Private/public data and functions in classes. Ch is compatible with C++ in 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
* Const member functions
* The new and delete operators
* Constructors and destructors
* Polymorphic functions
* The scope resolution operator ::
* The I/O functions cout, cerr, and cin with endl
* Arguments for
variadic functions are optional
Ch supports classes in C++ with added abilities, including:
* Classes inside member functions
* Nested functions with classes
* Passing member function to argument of pointer-to-function type of functions
Ch can interact with existing C/C++ libraries and call C/C++ functions from Ch script.
As a C/C++ interpreter, Ch can be used as a scripting engine and extension language for applications. Pointers to arrays or variables can be passed and shared in both C-compiled and Ch scripting contexts. One example of an embedded Ch scripting application is Mobile-C, which has been used for collaborative visualization of distributed mesh model.
Ch has a built-in string type (string_t) for automatic memory allocation and de-allocation. It supports shell aliases, history, piping, etc.
Ch has built-in 2D/3D graphical plotting features and computational
arrays for numerical computing. A 2D
linear equation
In mathematics, a linear equation is an equation that may be put in the form
a_1x_1+\ldots+a_nx_n+b=0, where x_1,\ldots,x_n are the variables (or unknowns), and b,a_1,\ldots,a_n are the coefficients, which are often real numbers. The coefficien ...
of the form ''b = A*x'' can be written verbatim in Ch.
See also
*
CINT
*
Pike (programming language)
References
Further reading
*
*
*
*
*
External links
* , SoftIntegration
Mobile-C: a Multi-Agent Platform for Mobile C/C++ Agents Home PageC-STEM Studio
{{DEFAULTSORT:Ch Interpreter
C programming language family
Educational programming languages
Interpreters (computing)
Pedagogic integrated development environments