Ch (computer programming)
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
|
Original author(s) | Harry H. Cheng |
---|---|
Developer(s) | SoftIntegration, Inc. |
Initial release | October 1, 2001 |
Stable release | 8.0.0
/ November 19, 2017 |
Written in | trialware for 30 days |
Website | www |
CH
CH can be embedded in C/C++ application programs. It has numerical computing and graphical plotting features. CH is a combined 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
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 modeling, the design, and analysis 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 (C-STEM). It offers 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
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.[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, piping, etc.[27][28]
CH has built-in 2D/3D graphical plotting features and computational
See also
References
- ^ Veeraraghavan, Sriranga (2013). "An introduction to Ch: Implementing a temperature converter in Ch". ComputerWorld.
{{cite journal}}
: Cite journal requires|journal=
(help) - ^ Ch Shell
- ^ Ch IDE
- 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.
{{cite journal}}
: Cite journal requires|journal=
(help) - ^ Cheng, Harry (1995). "Extending C and FORTRAN for Design Automation". ASME Trans., Journal of Mechanical Design: 390–395.
{{cite journal}}
: Cite journal requires|journal=
(help) - ]
- ^ Morejon, Mario (2006). "Ch Language Rivals Java Functionality". CRN.
{{cite journal}}
: Cite journal requires|journal=
(help) - S2CID 16996625.
- S2CID 17908643.
- ^ Cheng, Harry (2009). "C for the Course". ASME Mechanical Engineering Magazine: 50–52.
{{cite journal}}
: Cite journal requires|journal=
(help) - .
- S2CID 2063024.
- 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.
{{cite journal}}
: Cite journal requires|journal=
(help) - ^ 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.
{{cite journal}}
: Cite journal requires|journal=
(help) - 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.
- S2CID 39307433.
- 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.
{{cite journal}}
: Cite journal requires|journal=
(help) - ^ 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.
{{cite journal}}
: Cite journal requires|journal=
(help)
Further reading
- Heller, Martin (2001). "The Ch Language Environment". Byte. Archived from the original on November 16, 2001.
{{cite journal}}
: Cite journal requires|journal=
(help) - Cheng, Harry (2002). "C99 & Numeric Computing". Dr. Dobb's Journal. pp. 28–34.
- Cheng, Harry (2006). "Ch: A C/C++ Interpreter for Script Computing". Dr. Dobb's Journal. pp. 6–12.
- Cheng, Harry (2009). C For Engineers & Scientists, An Interpretive Approach. McGraw-Hill. ISBN 978-0-07-729046-7.
- Cheng, Harry (2011). C For Engineers & Scientists (Chinese ed.). Higher Education Press. ISBN 978-0-07-729046-7.