Content deleted Content added
revert - already linked and discussed in this topic |
Reworded possibly biased citation wording. Small copy edits. |
||
Line 1:
{{Multiple issues|COI = May 2011|confusing = June 2011|copy edit = June 2011}}
In [[computing]], '''Ch''' ({{IPAc-en|icon|ˌ|s|iː|ˈ|eɪ|tʃ}}) is a proprietary [[cross-platform]] [[C (programming language)|C]] and [[C++]] [[Interpreter (computing)|interpreter]] originally designed by Dr. Harry H. Cheng as a scripting language for beginners to learn math, computing, numerics, and programming in C/C++. Ch is now developed and marketed by SoftIntegration, Inc.
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 VLA 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}}</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 is now used and integrated into curriculum by many universities and schools{{dubious|date=May 2011}} for learning computing and programming in C/C++.<ref>{{cite journal | last = Cheng | first = Harry | year = 2009 | title = C for the Course | pages = 50–52 | url = http://memagazine.asme.org/Articles/2009/september/C_Course.cfm | publisher = ASME Mechanical Engineering Magazine}}</ref><ref>{{cite journal | last = Huber | first = Tom | year = 2010 | title = An Introduction to C and Ch: Your One-Stop Shop for Scientific Computing | url = http://www.computer.org/portal/web/csdl/doi/10.1109/MCSE.2010.82 | publisher = IEEE Computing in Science and Engineering | doi=10.1109/MCSE.2010.82}}</ref><ref>{{cite journal|last1=Liu|first1=Li | last2 = Wang | first2 = Zhaoqing|last3=Jiang | first3 = Xusheng | year = 2010 | title = Anchor-based programming teaching embedded with Ch platform | pages = 49–52 | url = http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5552033 | publisher = Mechatronics and Embedded Systems and Applications (MESA), IEEE/ASME International Conference }}</ref><ref>{{cite journal|last1=Furman|first1=B. | last2 = Wertz | first2 = E. | year = 2010 | title = A first course in computer programming for mechanical engineers | pages = 70–75 | url = http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?reload=true&arnumber=5552091 | publisher = Mechatronics and Embedded Systems and Applications (MESA), IEEE/ASME International Conference }}</ref><ref>{{cite journal|last1=ZHUANG |first1=Hong| last2 = WANG | first2 = Zhao-qing | year = 2009 | title = Experience of Using Ch for Teaching Computer Programming in C | pages = TP311.11–4 | url = http://en.cnki.com.cn/Article_en/CJFDTOTAL-JYJS200907016.htm | publisher = Computer Education | doi= CNKI:SUN:JYJS.0.2009-07-016 }}</ref><ref>{{cite journal|last1=WANG|first1=RONG| year = 2009 | title = Study of C Language Programming Teaching Method on platform Ch| pages = TP312.1–4 | url = http://en.cnki.com.cn/Article_en/CJFDTOTAL-WOLF200905018.htm | publisher = Journal of Weinan Teachers University | doi= CNKI:SUN:WOLF.0.2009-05-018 }}</ref>
Ch can also be run as an interactive shell to execute C
== Features ==
Ch supports the 1999 ISO C Standard (C99) and C++ classes. It is a superset of C with
C++ classes.
The following C++ features are available in Ch:
Line 23 ⟶ 22:
* Function-style type conversion
* Class
* private/public data and functions in class. 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
Line 30 ⟶ 29:
* Polymorphic functions
* The scope resolution operator ::
* The I/O functions cout, cerr, and cin with endl
* Arguments for variadic functions are optional
Line 41 ⟶ 40:
Ch can interface with existing C/C++ libraries and call C/C++ functions from Ch script.<ref>{{cite journal | last = Wilson | first = Matthew | year = 2004 | title = Open-RJ and Ch | url = http://drdobbs.com/184401877?queryText=ChSDK | publisher = Dr. Dobb's Journal}}</ref>
As a C/C++ interpreter, Ch can be used as a scripting engine for your applications. The pointer to array or variables can be passed and shared in both binary C space and ch scripting space. It extends your applications with a C compatible scripting language. One of the embedded ch scripting application is Mobile-C. Mobile-C has been used for collaborative visualization of distributed mesh model.<ref>{{cite journal | last = Cheng | first = Harry | year = 2009 | title = Speeding-Up Software Development Using Embedded Scripting | pages = 8-8 | url = http://drdobbs.com/architecture-and-design/212201774 | publisher = Dr. Dobb's Journal}}</ref><ref>{{cite journal|last1=Wang|first1=Li-rong | last2 = Bo | first2 = Yo|last3=Hagiwara | first3 = I | title = Mobile-C based agent management for collaborative visualization of distributed mesh model | url = http://ieeexplore.ieee.org/search/freesrchabstract.jsp?tp=&arnumber=5375178&queryText%3DMobile-C%26openedRefinements%3D*%26searchField%3DSearch+All | publisher = Computer-Aided Industrial Design & Conceptual Design, 2009. CAID & CD 2009. IEEE 10th International Conference }}</ref>
<ref>{{cite journal|last1=Wang|first1=Li-rong | last2 = Bo | first2 = Yo|last3=Hagiwara | first3 = Ichiro | title = An agent based collaborative simplification of 3D mesh model | url = http://dl.acm.org/citation.cfm?id=1813032 | year=2009 | publisher = CDVE'09 Proceedings of the 6th international conference on
Ch is a C language [[shell (computing)|shell]] and can be used as login shell. Ch has a built-in string type (string_t) for automatic memory allocation and de-allocation. It makes C/C++ easy of scripting. It supports shell alias, history, piping, etc.<ref>{{cite journal | last = Campbell | first = Matt | year = 2003 | title = Ch, A C/C++ Interpreter -- New possibilities for people who like C and Unix | url = http://www.mactech.com/articles/mactech/Vol.19/19.09/CInterpreter/index.html | publisher = MACTECH, the journal of Apple technology}}</ref><ref>{{cite book|last=Cheng|first=Harry|title=The Ch Language Environment|edition=6.3|year=2010|publisher= SoftIntegration, Inc.|___location=Davis, CA}}</ref>
|