Ch (computer programming)
|Initial release||Oct 01, 2001|
|Stable release||7.0 / February 2, 2012|
|Operating system||Microsoft Windows, Mac OS X, Linux, AIX, HP-UX, Solaris (SPARC and X86), QNX, FreeBSD|
|Type||Integrated development environment|
Standard edition: Freeware
Student edition: Freeware for Students
Professional edition: Trialware for 30 days
Ch // is a proprietary cross-platform C and C++ interpreter originally designed by Harry H. Cheng as a scripting language for beginners to learn mathematics, computing, numeric methods, and programming in C/C++. Ch is now developed and marketed by SoftIntegration, Inc. A student edition is freely available.
Ch can be embedded into the 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 MSDOS, Unix Shell and C language. ChIDE provides quick code navigation and step-by-step debug features. It is based on embedded Ch, Scite and Scintilla.
Ch can also be run as an interactive shell to execute C statements and scripts. Unix commands can run in Unix Ch shell, and Windows commands can run in Windows Ch Shell.
Ch is written in C and runs under Microsoft Windows, Linux, Mac OS X, 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. An article published by CRN named Ch as notable among C-based virtual machines for its functionality and the availability of third-party libraries.
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.
The following C++ features are available in Ch:
- Member functions
- Mixed code and declaration
- The this -> pointer
- Reference type and pass-by-reference
- Function-style type conversion
- 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 the following additional capabilities:
- 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.
- 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.
- 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. pp. 49–75.
- Cheng, Harry (1995). Extending C and FORTRAN for Design Automation. ASME Trans., Journal of Mechanical Design. pp. 390–395.
- Cheng, Harry (1995). "Extending C with arrays of variable length". Computer Standards & Interfaces (Computer Standards & Interfaces) 17 (4): 375–406. doi:10.1016/0920-5489(95)00007-H.
- Morejon, Mario (2006). Ch Language Rivals Java Functionality. CRN.
- Cheng, Harry (2009). C for the Course. ASME Mechanical Engineering Magazine. pp. 50–52.
- Huber, Tom (2010). "An Introduction to C and Ch: Your One-Stop Shop for Scientific Computing". Computing in Science & Engineering (IEEE Computing in Science and Engineering) 12 (4): 7. doi:10.1109/MCSE.2010.82.
- Liu, Li; Wang, Zhaoqing; Jiang, Xusheng (2010). Anchor-based programming teaching embedded with Ch platform. Mechatronics and Embedded Systems and Applications (MESA), IEEE/ASME International Conference. pp. 49–52.
- Furman, B.; Wertz, E. (2010). A first course in computer programming for mechanical engineers. Mechatronics and Embedded Systems and Applications (MESA), IEEE/ASME International Conference. pp. 70–75.
- ZHUANG, Hong; WANG, Zhao-qing (2009). Experience of Using Ch for Teaching Computer Programming in C. Computer Education. pp. TP311.11–4. doi: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. pp. TP312.1–4. doi:CNKI:SUN:WOLF.0.2009-05-018.
- 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. pp. 8–8.
- Wang, Li-rong; Bo, Yo; Hagiwara, I. Mobile-C based agent management for collaborative visualization of distributed mesh model. Computer-Aided Industrial Design & Conceptual Design, 2009. CAID & CD 2009. IEEE 10th International Conference.
- Wang, Li-rong; Bo, Yo; Hagiwara, Ichiro (2009). An agent based collaborative simplification of 3D mesh model. CDVE'09 Proceedings of the 6th international conference on cooperative design, visualization, and engineering.
- 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. pp. 36–37.
- Heller, Martin (2001). The Ch Language Environment. Byte Magazine.
- 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 Edition). Higher Education Press. ISBN 978-0-07-729046-7.