Ch (computer programming)

Source: Wikipedia, the free encyclopedia.
CH C/C++ interpreter
Original author(s)Harry H. Cheng
Developer(s)SoftIntegration, Inc.
Initial releaseOctober 1, 2001; 22 years ago (2001-10-01)
Stable release
8.0.0 / November 19, 2017; 6 years ago (2017-11-19)
Written in
trialware for 30 days
Websitewww.softintegration.com

CH

cross-platform C and C++ interpreter and scripting language environment. It was 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., with multiple versions available, including a freely available student edition and CH Professional Edition for Raspberry Pi is free for non-commercial use.

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

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 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

arrays for numerical computing. A 2D linear equation of the form b = A*x can be written verbatim in Ch.[29]

See also

References

  1. ^ Veeraraghavan, Sriranga (2013). "An introduction to Ch: Implementing a temperature converter in Ch". ComputerWorld. {{cite journal}}: Cite journal requires |journal= (help)
  2. ^ Ch Shell
  3. ^ Ch IDE
  4. S2CID 32477309
    .
  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. {{cite journal}}: Cite journal requires |journal= (help)
  7. ^ 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)
  8. ]
  9. ^ Morejon, Mario (2006). "Ch Language Rivals Java Functionality". CRN. {{cite journal}}: Cite journal requires |journal= (help)
  10. S2CID 16996625
    .
  11. .
  12. ^ Cheng, Harry (2009). "C for the Course". ASME Mechanical Engineering Magazine: 50–52. {{cite journal}}: Cite journal requires |journal= (help)
  13. .
  14. .
  15. .
  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. {{cite journal}}: Cite journal requires |journal= (help)
  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. {{cite journal}}: Cite journal requires |journal= (help)
  18. S2CID 23172598
    .
  19. ^ ch robot
  20. ^ ch finch
  21. ^ ch raspberry and arm[permanent dead link]
  22. ^ "Embedding a C/C++ Interpreter Ch into LabVIEW for Scripting".
  23. ^ Wilson, Matthew (2004). "Open-RJ and Ch". Dr. Dobb's Journal.
  24. ^ Cheng, Harry (2009). "Speeding-Up Software Development Using Embedded Scripting". Dr. Dobb's Journal. p. 8.
  25. S2CID 39307433
    .
  26. .
  27. ^ 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)
  28. ^ Cheng, Harry (2010). The Ch Language Environment (6.3 ed.). Davis, CA: SoftIntegration , Inc.
  29. ^ Glassborow, Francis (2001). "The Ch Language Environment Version 2.0". C Vu Magazine: 36–37. {{cite journal}}: Cite journal requires |journal= (help)

Further reading

External links