한국   대만   중국   일본 
Ch (computer programming) - Wikipedia Jump to content

Ch (computer programming)

From Wikipedia, the free encyclopedia
CH C/C++ interpreter
Original author(s) Harry H. Cheng
Developer(s) SoftIntegration, Inc.
Initial release October 1, 2001 ; 22 years ago  ( 2001-10-01 )
Stable release
8.0.0 / November 19, 2017 ; 6 years ago  ( 2017-11-19 )
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 ? e? t? / 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 [ edit ]

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:

  • 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, 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 [ edit ]

References [ edit ]

  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. ^ Wang, Gary (2002). "Ch Solves Portability Headaches". IEEE Spectrum . 39 (6): 59. doi : 10.1109/MSPEC.2002.1049264 . 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. ^ Cheng, Harry (1995). "Extending C with arrays of variable length". Computer Standards & Interfaces . 17 (4): 375?406. doi : 10.1016/0920-5489(95)00007-H . [ dead link ]
  9. ^ Morejon, Mario (2006). "Ch Language Rivals Java Functionality" . CRN. {{ cite journal }} : Cite journal requires |journal= ( help )
  10. ^ Cheng, Harry (2006). "Object-Oriented Interactive Mechanism Design and Analysis". Engineering with Computers . 21 (3): 237?246. doi : 10.1007/s00366-005-0008-4 . S2CID   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. doi : 10.1115/1.1630815 . S2CID   17908643 .
  12. ^ Cheng, Harry (2009). "C for the Course" . ASME Mechanical Engineering Magazine: 50?52. {{ cite journal }} : Cite journal requires |journal= ( help )
  13. ^ Huber, Tom (2010). "An Introduction to C and Ch: Your One-Stop Shop for Scientific Computing". Computing in Science & Engineering . 12 (4): 7. doi : 10.1109/MCSE.2010.82 .
  14. ^ Liu, Li; Wang, Zhaoqing; Jiang, Xusheng (2010). "Anchor-based promgramming teaching embedded with Ch platform". Proceedings of 2010 IEEE/ASME International Conference on Mechatronic and Embedded Systems and Applications . Mechatronics and Embedded Systems and Applications (MESA), IEEE/ASME International Conference. pp. 49?52. doi : 10.1109/MESA.2010.5552033 . ISBN   978-1-4244-7101-0 . S2CID   2063024 .
  15. ^ Furman, B.; Wertz, E. (2010). Proceedings of 2010 IEEE/ASME International Conference on Mechatronic and Embedded Systems and Applications . Mechatronics and Embedded Systems and Applications (MESA), IEEE/ASME International Conference. pp. 70?75. doi : 10.1109/MESA.2010.5552091 . ISBN   978-1-4244-7101-0 . S2CID   12764358 .
  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. ^ Stopforth, Riaan (2013). "Teaching and programming with Ch for tertiary-level mechatronics engineering education". 2013 6th Robotics and Mechatronics Conference (Rob Mech ) . Robotics and Mechatronics Conference (RobMech). pp. 146?149. doi : 10.1109/RoboMech.2013.6685507 . ISBN   978-1-4799-1518-7 . 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. ^ Wang, Li-rong; Bo, Yo; Hagiwara, I (2009). 2009 IEEE 10th International Conference on Computer-Aided Industrial Design & Conceptual Design . Computer-Aided Industrial Design & Conceptual Design, 2009. CAID & CD 2009. IEEE 10th International Conference. pp. 1127?1132. doi : 10.1109/CAIDCD.2009.5375178 . ISBN   978-1-4244-5266-8 . S2CID   39307433 .
  26. ^ Wang, Li-rong; Bo, Yo; Hagiwara, Ichiro (2009). An agent based collaborative simplification of 3D mesh model . Cdve'09. CDVE'09 Proceedings of the 6th international conference on cooperative design, visualization, and engineering. pp. 325?328. ISBN   9783642042645 .
  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 [ edit ]

External links [ edit ]