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 /ˌsiːˈeɪtʃ/ 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 supports classes in C++ with added abilities, including:

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. doi: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. doi: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 Sunday, April 03, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.