Ch (computer programming) Contents Features See also References Further reading External links Navigation menuwww.softintegration.com"An introduction to Ch: Implementing a temperature converter in Ch"Ch ShellCh IDE"Ch Solves Portability Headaches"10.1109/MSPEC.2002.1049264"Handling of Complex Numbers in the Ch Programming Language""Scientific Computing in the Ch Programming Language""Extending C and FORTRAN for Design Automation""Extending C with arrays of variable length"10.1016/0920-5489(95)00007-H"Ch Language Rivals Java Functionality"10.1007/s00366-005-0008-4"An Object-Based Software Package for Interactive Control System Design and Analysis"10.1115/1.1630815"C for the Course"10.1109/MCSE.2010.82"Anchor-based promgramming teaching embedded with Ch platform"10.1109/MESA.2010.555203310.1109/MESA.2010.5552091"Experience of Using Ch for Teaching Computer Programming in C"CKNI:SUN:JYJS.0.2009-07-016"Study of C Language Programming Teaching Method on platform Ch"CNKI:SUN:WOLF.0.2009-05-018"Teaching and programming with Ch for tertiary-level mechatronics engineering education"10.1109/RoboMech.2013.6685507ch robotch finchch raspberry and arm"Embedding a C/C++ Interpreter Ch into LabVIEW for Scripting""Open-RJ and Ch""Speeding-Up Software Development Using Embedded Scripting"10.1109/CAIDCD.2009.5375178An agent based collaborative simplification of 3D mesh model"Ch, A C/C++ Interpreter – New possibilities for people who like C and Unix""The Ch Language Environment Version 2.0""The Ch Language Environment"the original"C99 & Numeric Computing""Ch: A C/C++ Interpreter for Script Computing"C For Engineers & Scientists, An Interpretive ApproachC For Engineers & Scientists (Chinese edition)Official websiteMobile-C: a Multi-Agent Platform for Mobile C/C++ Agents Home PageC-STEM Studio

C programming language familyEducational programming languagesInterpreters (computing)Pedagogic integrated development environments


cross-platformCC++interpreternumerical analysisWindowsLinuxmacOSFreeBSDAIXSolarisQNXHP-UXvariable-length arrayC99CRNLabVIEWarrayslinear equation



























Ch C/C++ interpreter
Original author(s)Harry H. Cheng
Developer(s)SoftIntegration, Inc.
Initial releaseOctober 1, 2001; 17 years ago (2001-10-01)
Stable release
8.0.0
/ November 19, 2017; 15 months ago (2017-11-19)

Written inC
Operating system
Windows, OS X, Linux, AIX, HP-UX, Solaris (SPARC and x86), QNX, FreeBSD
Platform
x86, SPARC
Available inEnglish
TypeIntegrated development environment
License
Proprietary software
Standard edition: freeware
Student edition: freeware for students
Professional edition: trialware for 30 days
Websitewww.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 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 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 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] 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 UC Davis Center for Integrated Computing and STEM Education (C-STEM). It offers the 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]




Contents





  • 1 Features


  • 2 See also


  • 3 References


  • 4 Further reading


  • 5 External links




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


  • CINT

  • Pike (programming language)


References




  1. ^ Veeraraghavan, Sriranga (2013). "An introduction to Ch: Implementing a temperature converter in Ch". ComputerWorld..mw-parser-output cite.citationfont-style:inherit.mw-parser-output .citation qquotes:"""""""'""'".mw-parser-output .citation .cs1-lock-free abackground:url("//upload.wikimedia.org/wikipedia/commons/thumb/6/65/Lock-green.svg/9px-Lock-green.svg.png")no-repeat;background-position:right .1em center.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration abackground:url("//upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Lock-gray-alt-2.svg/9px-Lock-gray-alt-2.svg.png")no-repeat;background-position:right .1em center.mw-parser-output .citation .cs1-lock-subscription abackground:url("//upload.wikimedia.org/wikipedia/commons/thumb/a/aa/Lock-red-alt-2.svg/9px-Lock-red-alt-2.svg.png")no-repeat;background-position:right .1em center.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registrationcolor:#555.mw-parser-output .cs1-subscription span,.mw-parser-output .cs1-registration spanborder-bottom:1px dotted;cursor:help.mw-parser-output .cs1-ws-icon abackground:url("//upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Wikisource-logo.svg/12px-Wikisource-logo.svg.png")no-repeat;background-position:right .1em center.mw-parser-output code.cs1-codecolor:inherit;background:inherit;border:inherit;padding:inherit.mw-parser-output .cs1-hidden-errordisplay:none;font-size:100%.mw-parser-output .cs1-visible-errorfont-size:100%.mw-parser-output .cs1-maintdisplay:none;color:#33aa33;margin-left:0.3em.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration,.mw-parser-output .cs1-formatfont-size:95%.mw-parser-output .cs1-kern-left,.mw-parser-output .cs1-kern-wl-leftpadding-left:0.2em.mw-parser-output .cs1-kern-right,.mw-parser-output .cs1-kern-wl-rightpadding-right:0.2em


  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.


  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. 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. 21 (3): 237–246. doi:10.1007/s00366-005-0008-4.


  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.


  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. 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". Anchor-based programming teaching embedded with Ch platform. 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.


  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.


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


  19. ^
    ch robot



  20. ^
    ch finch



  21. ^
    ch raspberry and arm



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


  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.


  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.




Further reading



  • Heller, Martin (2001). "The Ch Language Environment". Byte. Archived from the original on November 16, 2001.


  • Cheng, Harry (2002). "C99 & Numeric Computing". Dr. Dobb's Journal: 28–34.


  • Cheng, Harry (2006). "Ch: A C/C++ Interpreter for Script Computing". Dr. Dobb's Journal: 6–12.


  • Cheng, Harry (2009). C For Engineers & Scientists, An Interpretive Approach. McGraw-Hill. ISBN 978-0-07-729046-7.


  • Cheng, Harry (2011). C For Engineers & Scientists (Chinese edition). Higher Education Press. ISBN 978-0-07-729046-7.


External links



  • Official website, SoftIntegration

  • Mobile-C: a Multi-Agent Platform for Mobile C/C++ Agents Home Page

  • C-STEM Studio


Popular posts from this blog

How to get text form Clipboard with JavaScript in Firefox 56?How to validate an email address in JavaScript?How do JavaScript closures work?How do I remove a property from a JavaScript object?How do you get a timestamp in JavaScript?How do I copy to the clipboard in JavaScript?How do I include a JavaScript file in another JavaScript file?Get the current URL with JavaScript?How to replace all occurrences of a string in JavaScriptHow to check whether a string contains a substring in JavaScript?How do I remove a particular element from an array in JavaScript?

Can't initialize raids on a new ASUS Prime B360M-A motherboard2019 Community Moderator ElectionSimilar to RAID config yet more like mirroring solution?Can't get motherboard serial numberWhy does the BIOS entry point start with a WBINVD instruction?UEFI performance Asus Maximus V Extreme

List of MPs elected to the English parliament in 1640 (April) Contents List of constituencies and members See also Notes References Navigation menueNational Archives – The Glynde Place ArchivesCobbett's Parliamentary history of England, from the Norman Conquest in 1066 to the year 1803'Aldermen in Parliament', The Aldermen of the City of London: Temp. Henry III – 1912onepage&q&f&#61, false 229