Ch (computer programming) explained

CH C/C++ interpreter
Author:Harry H. Cheng
Developer:SoftIntegration, Inc.
Latest Release Version:8.0.0
Programming Language:C
Operating System:Windows, OS X, Linux, AIX, HP-UX, Solaris (SPARC and x86), QNX, FreeBSD
Platform:x86, SPARC
Language:English
Genre:Integrated development environment
License:Proprietary software
Standard edition: freeware
Student edition: freeware for students
Professional edition: trialware for 30 days

CH is a proprietary cross-platform C and C++ interpreter and scripting language environment. It was originally designed by Harry 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 a CH Professional Edition for Raspberry Pi which is free for non-commercial use.

CH can be embedded in C and C++ application programs. It has numerical computing and graphical plotting features. CH is combined of both 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, macOS, 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 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 the design, analysis, and modeling 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, offering 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:

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.[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, and piping.[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

Further reading

External links

Notes and References

  1. Veeraraghavan . Sriranga . 2013 . An introduction to Ch: Implementing a temperature converter in Ch . ComputerWorld.
  2. http://www.softintegration.com/docs/ch/shell/ Ch Shell
  3. http://www.softintegration.com/docs/ch/chide/ Ch IDE
  4. Wang . Gary . 2002 . Ch Solves Portability Headaches . IEEE Spectrum . 39 . 6 . 59 . 10.1109/MSPEC.2002.1049264 . 32477309 .
  5. Cheng . Harry . 1993 . Handling of Complex Numbers in the Ch Programming Language . 76–106 . Scientific Programming.
  6. Cheng . Harry . 1993 . Scientific Computing in the Ch Programming Language . 49–75 . Scientific Programming.
  7. Cheng . Harry . 1995 . Extending C and FORTRAN for Design Automation . 390–395 . ASME Trans., Journal of Mechanical Design.
  8. Cheng . Harry . 1995 . Extending C with arrays of variable length . 375–406 . 10.1016/0920-5489(95)00007-H . Computer Standards & Interfaces . 17 . 4.
  9. Morejon . Mario . 2006 . Ch Language Rivals Java Functionality . CRN.
  10. Cheng . Harry . 2006 . Object-Oriented Interactive Mechanism Design and Analysis . Engineering with Computers . 21 . 3 . 237–246 . 10.1007/s00366-005-0008-4 . 16996625 .
  11. Zhu . Yong . 2003 . An Object-Based Software Package for Interactive Control System Design and Analysis . Journal of Computing and Information Science in Engineering . 3 . 4 . 366–367 . 10.1115/1.1630815 . 17908643 .
  12. Cheng . Harry . 2009 . C for the Course . 50–52 . ASME Mechanical Engineering Magazine.
  13. Huber . Tom . 2010 . An Introduction to C and Ch: Your One-Stop Shop for Scientific Computing . 10.1109/MCSE.2010.82 . Computing in Science & Engineering . 12 . 4 . 7.
  14. Book: Liu . Li . Wang . Zhaoqing. Jiang . Xusheng . Proceedings of 2010 IEEE/ASME International Conference on Mechatronic and Embedded Systems and Applications . 2010 . 49–52 . Mechatronics and Embedded Systems and Applications (MESA), IEEE/ASME International Conference. 10.1109/MESA.2010.5552033 . Anchor-based promgramming teaching embedded with Ch platform . 978-1-4244-7101-0 . 2063024 .
  15. Book: Furman . B. . Proceedings of 2010 IEEE/ASME International Conference on Mechatronic and Embedded Systems and Applications . Wertz . E. . 2010 . 70–75 . Mechatronics and Embedded Systems and Applications (MESA), IEEE/ASME International Conference. 10.1109/MESA.2010.5552091 . 978-1-4244-7101-0 . 12764358 .
  16. Zhuang . Hong . Wang . Zhao-qing . 2009 . Experience of Using Ch for Teaching Computer Programming in C . TP311.11–4 . Computer Education . CKNI:SUN:JYJS.0.2009-07-016.
  17. Wang . Rong . 2009 . Study of C Language Programming Teaching Method on platform Ch . TP312.1–4 . Journal of Weinan Teachers University . CNKI:SUN:WOLF.0.2009-05-018.
  18. Book: Stopforth . Riaan . 2013 6th Robotics and Mechatronics Conference (Rob Mech) . 2013 . 146–149 . Robotics and Mechatronics Conference (RobMech). 10.1109/RoboMech.2013.6685507 . 978-1-4799-1518-7 . Teaching and programming with Ch for tertiary-level mechatronics engineering education . 23172598 .
  19. http://www.newtonium.com/public_html/Products/RoboWorks/chrobotalk.htm ch robot
  20. http://www.finchrobot.com/software/ch ch finch
  21. http://www.softintegration.com/company/press/ch_arm_raspberry_pi_released.htm ch raspberry and arm
  22. Web site: 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 . 8 . Dr. Dobb's Journal.
  25. Book: Wang . Li-rong . 2009 IEEE 10th International Conference on Computer-Aided Industrial Design & Conceptual Design . 1127–1132 . Bo . Yo. Hagiwara . I . Computer-Aided Industrial Design & Conceptual Design, 2009. CAID & CD 2009. IEEE 10th International Conference. 10.1109/CAIDCD.2009.5375178 . 2009 . 978-1-4244-5266-8 . 39307433 .
  26. Book: Wang . Li-rong . Bo . Yo. Hagiwara . Ichiro . An agent based collaborative simplification of 3D mesh model . 325–328 . 2009 . CDVE'09 Proceedings of the 6th international conference on cooperative design, visualization, and engineering. 9783642042645 . Cdve'09 .
  27. Campbell . Matt . 2003 . Ch, A C/C++ Interpreter – New possibilities for people who like C and Unix . MACTECH, the journal of Apple technology.
  28. Book: Cheng, Harry. The Ch Language Environment. 6.3. 2010. SoftIntegration, Inc.. Davis, CA.
  29. Glassborow . Francis . 2001 . The Ch Language Environment Version 2.0 . 36–37 . C Vu Magazine.