Ch (computer programming)

Ch C/C++ interpreter
Original author(s) Harry H. Cheng
Developer(s) SoftIntegration, Inc.
Initial release October 1, 2001 (2001-10-01)
Stable release
7.5.1 / December 2, 2015 (2015-12-02)
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 /ˌsˈ/ 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 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 Windows, Linux, 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.[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 toolkits that extend its functions. For example, Ch Mechanism Toolkit is used for design and analysis of commonly used mechanisms such as fourbar linkage, five-bar linkage, six-bar linkage, crank-slider mechanism, and cam-follower system.[10] Ch Control System Toolkit is used for modeling, design, and analysis of continuous-time or discrete-time linear time invariant (LTI) control systems.[11] Both toolkits 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++.[12][13][14][15][16][17][18]

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:


Ch can interact with existing C/C++ libraries and call C/C++ functions from Ch script.[19] 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.[20][21][22]

Ch has a built-in string type (string_t) for automatic memory allocation and de-allocation. It supports shell aliases, history, piping, etc.[23][24]

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.[25]

See also

References

  1. Veeraraghavan, Sriranga (2013). "An introduction to Ch: Implementing a temperature converter in Ch". ComputerWorld.
  2. Ch Shell
  3. Ch IDE
  4. Wang, Gary (2002). "Ch Solves Portability Headaches". IEEE Spectrum.
  5. Cheng, Harry (1993). "Handling of Complex Numbers in the Ch Programming Language". Scientific Programming: 76–106.
  6. Cheng, Harry (1993). "Scientific Computing in the Ch Programming Language". Scientific Programming: 49–75.
  7. Cheng, Harry (1995). "Extending C and FORTRAN for Design Automation". ASME Trans., Journal of Mechanical Design: 390–395.
  8. 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.
  9. Morejon, Mario (2006). "Ch Language Rivals Java Functionality". CRN.
  10. Cheng, Harry (2006). "Object-Oriented Interactive Mechanism Design and Analysis". Engineering with Computers: 237–246.
  11. Zhu, Yong (2003). "An Object-Based Software Package for Interactive Control System Design and Analysis". ASME Trans. Journal of Computing and Information Science in Engineering: 366–367.
  12. Cheng, Harry (2009). "C for the Course". ASME Mechanical Engineering Magazine: 50–52.
  13. 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.
  14. 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: 49–52.
  15. 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: 70–75.
  16. 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.
  17. 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.
  18. Stopforth, Riaan (2013). "Teaching and programming with Ch for tertiary-level mechatronics engineering education". Robotics and Mechatronics Conference (RobMech): 146–149.
  19. Wilson, Matthew (2004). "Open-RJ and Ch". Dr. Dobb's Journal.
  20. Cheng, Harry (2009). "Speeding-Up Software Development Using Embedded Scripting". Dr. Dobb's Journal: 8–8.
  21. 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.
  22. 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.
  23. Campbell, Matt (2003). "Ch, A C/C++ Interpreter – New possibilities for people who like C and Unix". MACTECH, the journal of Apple technology.
  24. Cheng, Harry (2010). The Ch Language Environment (6.3 ed.). Davis, CA: SoftIntegration , Inc.
  25. Glassborow, Francis (2001). "The Ch Language Environment Version 2.0". C Vu Magazine: 36–37.

Further reading

External links

This article is issued from Wikipedia - version of the 9/13/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.