Content deleted Content added
added reference from Sriranga Veeraraghavan, author of the book ""Sams Teach Yourself Shell Programming in 24 Hours (2nd Edition)" |
No edit summary Tags: Mobile edit Mobile web edit Advanced mobile edit |
||
(72 intermediate revisions by 46 users not shown) | |||
Line 1:
{{Infobox software
| name =
| logo =
| screenshot =
| caption =
| author = Harry H. Cheng
| developer
| released = {{Start date and age|2001|10|01}}
| latest release
|
| status =
| operating system = [[Microsoft Windows]], [[Mac OS X]], [[Linux]], [[AIX (operating system)|AIX]], [[HP-UX]], [[Solaris (operating system)|Solaris]] (SPARC and X86), [[Qnx|QNX]], [[FreeBSD]]▼
| programming language = [[C (programming
▲| operating system
| genre = [[Integrated development environment]]▼
| platform = [[x86]], [[SPARC]]
| license = [[Proprietary software]]<br/>'''Standard edition:''' [[Freeware]]<br />'''Student edition:''' [[Freeware]] for Students<br />'''Professional edition:''' [[Trialware]] for 30 days▼
| size =
| website = {{url|http://www.softintegration.com}}▼
| language = English
▲| license
}}
'''
CH can be embedded in C and C++ application programs. It has [[numerical computing]] and graphical plotting features.
▲It has numerical computing and graphical plotting features. Ch is a combined C shell and IDE. <ref> {{cite journal | last = Veeraraghavan | first = Sriranga | year = 2013 | title = An introduction to Ch: Implementing a temperature converter in Ch | url = http://http://www.techworld.com.au/article/452524/an_introduction_ch_implementing_temperature_converter_ch/ | publisher = ComputerWorld}}</ref> Ch shell combines the features of MSDOS, Unix Shell and C language. <ref>[http://www.softintegration.com/docs/ch/shell/ Ch Shell]</ref> ChIDE provides quick [[code navigation]] and step-by-step debug features. It is based on embedded Ch, Scite and Scintilla.<ref>[http://www.softintegration.com/docs/ch/chide/ Ch IDE]</ref>
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.<ref>{{cite journal |last= Cheng |first= Harry |year= 2006 |title= Object-Oriented Interactive Mechanism Design and Analysis |journal= Engineering with Computers |volume= 21 |issue= 3 |pages= 237–246 |doi= 10.1007/s00366-005-0008-4 |s2cid= 16996625 }}</ref> CH Control System Toolkit is used for the design, analysis, and modelling of continuous-time or discrete-time linear time-invariant (LTI) control systems.<ref>{{cite journal |last= Zhu |first= Yong |year= 2003 |title= An Object-Based Software Package for Interactive Control System Design and Analysis |journal= Journal of Computing and Information Science in Engineering |volume= 3 |issue= 4 |pages= 366–367 |doi= 10.1115/1.1630815 |s2cid= 17908643 }}</ref> Both tool kits include the [[source code]].
▲Ch is written in C and runs under [[Microsoft Windows]], [[Linux]], [[Mac OS X]], [[FreeBSD]], [[AIX]], [[Solaris (operating system)|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.<ref>{{cite journal | last = Cheng | first = Harry | year = 1993 | title = Handling of Complex Numbers in the Ch Programming Language | pages = 76–106 | url = http://iospress.metapress.com/content/xml874m51x1w42w0/|journal=Scientific Programming}}</ref><ref>{{cite journal | last = Cheng | first = Harry | year = 1993 | title = Scientific Computing in the Ch Programming Language | pages = 49–75 | url = http://iospress.metapress.com/content/f225771541203807/ | publisher = Scientific Programming}}</ref><ref>{{cite journal | last = Cheng | first = Harry | year = 1995 | title = Extending C and FORTRAN for Design Automation | pages = 390–395 | url = http://scitation.aip.org/getabs/servlet/GetabsServlet?prog=normal&id=JMDEDB000117000003000390000001&idtype=cvips&gifs=yes&ref=no | publisher = ASME Trans., Journal of Mechanical Design}}</ref><ref>{{cite journal | last = Cheng | first = Harry | year = 1995 | title = Extending C with arrays of variable length | pages = 375–406 | url = http://www.sciencedirect.com/science?_ob=ArticleURL&_udi=B6TYV-3Y6PCHF-V&_user=10&_coverDate=09%2F15%2F1995&_alid=1737140035&_rdoc=1&_fmt=high&_orig=search&_origin=search&_zone=rslt_list_item&_cdi=5628&_sort=r&_st=13&_docanchor=&view=c&_ct=1&_acct=C000050221&_version=1&_urlVersion=0&_userid=10&md5=1369ffa56fdef3033135fa8fc1eb4c15&searchtype=a | publisher = Computer Standards & Interfaces | doi=10.1016/0920-5489(95)00007-H | journal = Computer Standards & Interfaces | volume = 17 | issue = 4}}</ref> An article published by [[CRN Magazine|CRN]] named Ch as notable among C-based virtual machines for its functionality and the availability of third-party libraries.<ref>{{cite journal | last= Morejon | first=Mario| year = 2006 |title= Ch Language Rivals Java Functionality | url= http://www.crn.com/reviews/applications-os/175804126/ch-language-rivals-java-functionality.htm | publisher = CRN}}</ref>
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|LEGO Mindstorms NXT]] and [[Lego Mindstorms EV3|EV3]], [[Arduino]], Linkbot, Finch Robot, RoboTalk and Raspberry Pi, Pi Zero, and ARM for robot programming and learning.<ref>
[http://www.newtonium.com/public_html/Products/RoboWorks/chrobotalk.htm ch robot]</ref><ref>
[http://www.finchrobot.com/software/ch ch finch]</ref><ref>[http://www.softintegration.com/company/press/ch_arm_raspberry_pi_released.htm ch raspberry and arm]{{Dead link|date=June 2019 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> It can also be embedded into the [[LabVIEW]] system design platform and development environment.<ref>{{Cite web|url=http://iel.ucdavis.edu/projects/chlabview/|title=Embedding a C/C++ Interpreter Ch into LabVIEW for Scripting}}</ref>
== 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 array|variable length arrays]] (VLAs), IEEE
▲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.
▲The following C++ features are available in Ch:
▲* Member functions
* Mixed code and declaration
* The ''[[this (computer programming)|this]]'' -> pointer
* [[Reference type (C++)|Reference type and pass-by-reference]]
* Function-style type conversion
* [[Classes in C++|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
Line 48 ⟶ 50:
* The new and delete operators
* Constructors and destructors
* [[Polymorphic
* The [[scope resolution operator
* The I/O functions cout, cerr, and cin with endl
* Arguments for [[variadic
* Classes inside member functions
* [[Nested
* Passing member function to argument of pointer-to-function type of functions
As a C/C++ interpreter,
== See also ==
* [[CINT]]
* [[Pike (programming language)]]
== References ==
{{Reflist}}
== Further reading ==
* {{cite journal |last=Heller |first=Martin |year=2001 |title=The Ch Language Environment |url=http://www.byte.com/documents/s=1776/byt20011031s0002/1105_heller.html |publisher=[[Byte (magazine)|Byte]] |url-status=dead |archive-url=https://web.archive.org/web/20011116220556/http://www.byte.com/documents/s%3D1776/byt20011031s0002/1105_heller.html |archive-date=November 16, 2001 }}
*
* {{cite
* {{cite
* {{cite book |
== External links ==
*
* [http://www.mobilec.org/ Mobile-C: a Multi-Agent Platform for Mobile C/C++ Agents Home Page]
* [http://c-stem.ucdavis.edu/studio/ C-STEM Studio]
{{DEFAULTSORT:Ch Interpreter}}
[[Category:C programming language family]]
[[Category:Educational programming languages]]▼
[[Category:Interpreters (computing)]]
[[Category:Pedagogic integrated development environments]]
▲[[Category:Educational programming languages]]
|