CH C/C++ interpreter
Original author(s)
| Harry H. Cheng
|
---|
Developer(s)
| SoftIntegration, Inc.
|
---|
Initial release
| October 1, 2001
; 22 years ago
(
2001-10-01
)
|
---|
|
Stable release
| 8.0.0
/ November 19, 2017
; 6 years ago
(
2017-11-19
)
|
---|
|
Written in
| C
|
---|
Operating system
| Windows
,
OS X
,
Linux
,
AIX
,
HP-UX
,
Solaris
(SPARC and x86),
QNX
,
FreeBSD
|
---|
Platform
| x86
,
SPARC
|
---|
Available in
| English
|
---|
Type
| Integrated development environment
|
---|
License
| Proprietary software
Standard edition:
freeware
Student edition:
freeware
for students
Professional edition:
trialware
for 30 days
|
---|
Website
| www
.softintegration
.com
|
---|
CH
is a proprietary
cross-platform
C
and
C++
interpreter
and
scripting language environment
. It was originally designed by
Harry 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
., with multiple versions available, including a freely available student edition, and a CH Professional Edition for
Raspberry Pi
which is free for non-commercial use.
CH can be embedded in C and C++ application programs. It has
numerical computing
and graphical plotting features. CH is combined of both
shell and IDE
.
[1]
CH shell combines the features of common shell and C language.
[2]
ChIDE provides quick code navigation and symbolic debugging. It is based on embedded CH,
Scite
, and
Scintilla
.
[3]
[4]
CH is written in C and runs on
Windows
,
Linux
,
macOS
,
FreeBSD
,
AIX
,
Solaris
,
QNX
, and
HP-UX
. 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.
[5]
[6]
[7]
[8]
An article published by
Computer Reseller News
(
CRN
) named CH as notable among C-based virtual machines for its functionality and the availability of third-party libraries.
[9]
CH has many tool kits that extend its functions. For example, the 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.
[10]
CH Control System Toolkit is used for the design, analysis, and modeling of continuous-time or discrete-time linear time-invariant (LTI) control systems.
[11]
Both tool kits include the
source code
.
CH is now used and integrated into the curriculum by many high schools and universities to teach computing and programming in C/C++.
[12]
[13]
[14]
[15]
[16]
[17]
[18]
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 the UC Davis Center for Integrated Computing and STEM Education, offering a 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.
[19]
[20]
[21]
It can also be embedded into the
LabVIEW
system design platform and development environment.
[22]
Features
[
edit
]
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:
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.
[23]
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.
[24]
[25]
[26]
CH has a built-in
string type
(string_t) for automatic memory allocation and de-allocation. It supports shell aliases, history, and piping.
[27]
[28]
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.
[29]
See also
[
edit
]
References
[
edit
]
- ^
Veeraraghavan, Sriranga (2013).
"An introduction to Ch: Implementing a temperature converter in Ch"
. ComputerWorld.
- ^
Ch Shell
- ^
Ch IDE
- ^
Wang, Gary (2002). "Ch Solves Portability Headaches".
IEEE Spectrum
.
39
(6): 59.
doi
:
10.1109/MSPEC.2002.1049264
.
S2CID
32477309
.
- ^
Cheng, Harry (1993).
"Handling of Complex Numbers in the Ch Programming Language"
.
Scientific Programming
: 76?106.
- ^
Cheng, Harry (1993).
"Scientific Computing in the Ch Programming Language"
. Scientific Programming: 49?75.
- ^
Cheng, Harry (1995).
"Extending C and FORTRAN for Design Automation"
. ASME Trans., Journal of Mechanical Design: 390?395.
- ^
Cheng, Harry (1995). "Extending C with arrays of variable length".
Computer Standards & Interfaces
.
17
(4): 375?406.
doi
:
10.1016/0920-5489(95)00007-H
.
[
dead link
]
- ^
Morejon, Mario (2006).
"Ch Language Rivals Java Functionality"
. CRN.
- ^
Cheng, Harry (2006). "Object-Oriented Interactive Mechanism Design and Analysis".
Engineering with Computers
.
21
(3): 237?246.
doi
:
10.1007/s00366-005-0008-4
.
S2CID
16996625
.
- ^
Zhu, Yong (2003). "An Object-Based Software Package for Interactive Control System Design and Analysis".
Journal of Computing and Information Science in Engineering
.
3
(4): 366?367.
doi
:
10.1115/1.1630815
.
S2CID
17908643
.
- ^
Cheng, Harry (2009).
"C for the Course"
. ASME Mechanical Engineering Magazine: 50?52.
- ^
Huber, Tom (2010). "An Introduction to C and Ch: Your One-Stop Shop for Scientific Computing".
Computing in Science & Engineering
.
12
(4): 7.
doi
:
10.1109/MCSE.2010.82
.
- ^
Liu, Li; Wang, Zhaoqing; Jiang, Xusheng (2010). "Anchor-based promgramming teaching embedded with Ch platform".
Proceedings of 2010 IEEE/ASME International Conference on Mechatronic and Embedded Systems and Applications
. Mechatronics and Embedded Systems and Applications (MESA), IEEE/ASME International Conference. pp. 49?52.
doi
:
10.1109/MESA.2010.5552033
.
ISBN
978-1-4244-7101-0
.
S2CID
2063024
.
- ^
Furman, B.; Wertz, E. (2010).
Proceedings of 2010 IEEE/ASME International Conference on Mechatronic and Embedded Systems and Applications
. Mechatronics and Embedded Systems and Applications (MESA), IEEE/ASME International Conference. pp. 70?75.
doi
:
10.1109/MESA.2010.5552091
.
ISBN
978-1-4244-7101-0
.
S2CID
12764358
.
- ^
Zhuang, Hong; Wang, Zhao-qing (2009).
"Experience of Using Ch for Teaching Computer Programming in C"
. Computer Education: TP311.11?4.
CKNI:SUN:JYJS.0.2009-07-016
.
- ^
Wang, Rong (2009).
"Study of C Language Programming Teaching Method on platform Ch"
. Journal of Weinan Teachers University: TP312.1?4.
CNKI:SUN:WOLF.0.2009-05-018
.
- ^
Stopforth, Riaan (2013). "Teaching and programming with Ch for tertiary-level mechatronics engineering education".
2013 6th Robotics and Mechatronics Conference (Rob
Mech
)
. Robotics and Mechatronics Conference (RobMech). pp. 146?149.
doi
:
10.1109/RoboMech.2013.6685507
.
ISBN
978-1-4799-1518-7
.
S2CID
23172598
.
- ^
ch robot
- ^
ch finch
- ^
ch raspberry and arm
[
permanent dead link
]
- ^
"Embedding a C/C++ Interpreter Ch into LabVIEW for Scripting"
.
- ^
Wilson, Matthew (2004).
"Open-RJ and Ch"
.
Dr. Dobb's Journal
.
- ^
Cheng, Harry (2009).
"Speeding-Up Software Development Using Embedded Scripting"
.
Dr. Dobb's Journal
. p. 8.
- ^
Wang, Li-rong; Bo, Yo; Hagiwara, I (2009).
2009 IEEE 10th International Conference on Computer-Aided Industrial Design & Conceptual Design
. Computer-Aided Industrial Design & Conceptual Design, 2009. CAID & CD 2009. IEEE 10th International Conference. pp. 1127?1132.
doi
:
10.1109/CAIDCD.2009.5375178
.
ISBN
978-1-4244-5266-8
.
S2CID
39307433
.
- ^
Wang, Li-rong; Bo, Yo; Hagiwara, Ichiro (2009).
An agent based collaborative simplification of 3D mesh model
. Cdve'09. CDVE'09 Proceedings of the 6th international conference on cooperative design, visualization, and engineering. pp. 325?328.
ISBN
9783642042645
.
- ^
Campbell, Matt (2003).
"Ch, A C/C++ Interpreter ? New possibilities for people who like C and Unix"
. MACTECH, the journal of Apple technology.
- ^
Cheng, Harry (2010).
The Ch Language Environment
(6.3 ed.). Davis, CA: SoftIntegration , Inc.
- ^
Glassborow, Francis (2001).
"The Ch Language Environment Version 2.0"
. C Vu Magazine: 36?37.
Further reading
[
edit
]
External links
[
edit
]