Ch (computer programming)

Ch (computer programming)

In computing, Ch (play /ˌsˈ/) is a proprietary cross-platform C and C++ 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.; a student edition is freely available.

Ch is written in C and runs under Microsoft Windows, Linux, Mac OS X, 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, VLA features were supported in Ch before they became part of the C99 standard.[1][2][3][4]

Ch is now used and integrated into curriculum by many universities and schools[dubious ] for learning computing and programming in C/C++.[5][6][7][8][9][10]

Ch can also be run as an interactive shell to execute C statement, C script file, Unix commands, and Windows commands (under windows only).[11]

Contents

Features

Ch supports the 1999 ISO C Standard (C99) and C++ classes. It is a superset of C with C++ classes. C99 major features such as complex numbers, variable length arrays (VLAs), IEEE-754 floating-point arithmetic and generic mathematical functions are supported. Wide characters in Addendum 1 for C90 is also supported.

The following C++ features are available in Ch:

  • Member function
  • Mixed code and declaration
  • The this-> pointer
  • Reference type and pass-by-reference
  • Function-style type conversion
  • Class
  • private/public data and functions in class. Ch is compatible with C++ 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 cout, cerr, cin with endl
  • Arguments for variadic functions are optional

Ch supports classes in C++ with the following additional capabilities:

  • Classes inside member functions
  • Nested functions with classes
  • Pass member function to argument of pointer-to-function type of functions

Ch can interface with existing C/C++ libraries and call C/C++ functions from Ch script.[12] 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.[13][14] [15]


Ch is a C language 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.[16][17]

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.[18]

See also

References

  1. ^ Cheng, Harry (1993). "Handling of Complex Numbers in the Ch Programming Language". Scientific Programming: 76–106. http://iospress.metapress.com/content/xml874m51x1w42w0/. 
  2. ^ Cheng, Harry (1993). Scientific Computing in the Ch Programming Language. Scientific Programming. pp. 49–75. http://iospress.metapress.com/content/f225771541203807/. 
  3. ^ Cheng, Harry (1995). Extending C and FORTRAN for Design Automation. ASME Trans., Journal of Mechanical Design. pp. 390–395. http://scitation.aip.org/getabs/servlet/GetabsServlet?prog=normal&id=JMDEDB000117000003000390000001&idtype=cvips&gifs=yes&ref=no. 
  4. ^ Cheng, Harry (1995). Extending C with arrays of variable length. Computer Standards & Interfaces. pp. 375–406. doi:10.1016/0920-5489(95)00007-H. 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. 
  5. ^ Cheng, Harry (2009). C for the Course. ASME Mechanical Engineering Magazine. pp. 50–52. http://memagazine.asme.org/Articles/2009/september/C_Course.cfm. 
  6. ^ Huber, Tom (2010). An Introduction to C and Ch: Your One-Stop Shop for Scientific Computing. IEEE Computing in Science and Engineering. doi:10.1109/MCSE.2010.82. http://www.computer.org/portal/web/csdl/doi/10.1109/MCSE.2010.82. 
  7. ^ Liu, Li; Wang, Zhaoqing; Jiang, Xusheng (2010). Anchor-based programming teaching embedded with Ch platform. Mechatronics and Embedded Systems and Applications (MESA), IEEE/ASME International Conference. pp. 49–52. http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5552033. 
  8. ^ Furman, B.; Wertz, E. (2010). A first course in computer programming for mechanical engineers. Mechatronics and Embedded Systems and Applications (MESA), IEEE/ASME International Conference. pp. 70–75. http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?reload=true&arnumber=5552091. 
  9. ^ ZHUANG, Hong; WANG, Zhao-qing (2009). Experience of Using Ch for Teaching Computer Programming in C. Computer Education. pp. TP311.11–4. doi:CNKI:SUN:JYJS.0.2009-07-016. http://en.cnki.com.cn/Article_en/CJFDTOTAL-JYJS200907016.htm. 
  10. ^ WANG, RONG (2009). Study of C Language Programming Teaching Method on platform Ch. Journal of Weinan Teachers University. pp. TP312.1–4. doi:CNKI:SUN:WOLF.0.2009-05-018. http://en.cnki.com.cn/Article_en/CJFDTOTAL-WOLF200905018.htm. 
  11. ^ Wang, Gary (2002). Ch Solves Portability Headaches. IEEE Spectrum. http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1049264. 
  12. ^ Wilson, Matthew (2004). Open-RJ and Ch. Dr. Dobb's Journal. http://drdobbs.com/184401877?queryText=ChSDK. 
  13. ^ Cheng, Harry (2009). Speeding-Up Software Development Using Embedded Scripting. Dr. Dobb's Journal. pp. 8-8. http://drdobbs.com/architecture-and-design/212201774. 
  14. ^ Wang, Li-rong; Bo, Yo; Hagiwara, I. Mobile-C based agent management for collaborative visualization of distributed mesh model. Computer-Aided Industrial Design & Conceptual Design, 2009. CAID & CD 2009. IEEE 10th International Conference. http://ieeexplore.ieee.org/search/freesrchabstract.jsp?tp=&arnumber=5375178&queryText%3DMobile-C%26openedRefinements%3D*%26searchField%3DSearch+All. 
  15. ^ Wang, Li-rong; Bo, Yo; Hagiwara, Ichiro (2009). An agent based collaborative simplification of 3D mesh model. CDVE'09 Proceedings of the 6th international conference on Cooperative design, visualization, and engineering. http://dl.acm.org/citation.cfm?id=1813032. 
  16. ^ Campbell, Matt (2003). Ch, A C/C++ Interpreter -- New possibilities for people who like C and Unix. MACTECH, the journal of Apple technology. http://www.mactech.com/articles/mactech/Vol.19/19.09/CInterpreter/index.html. 
  17. ^ Cheng, Harry (2010). The Ch Language Environment (6.3 ed.). Davis, CA: SoftIntegration, Inc.. 
  18. ^ Glassborow, Francis (2001). The Ch Language Environment Version 2.0. C Vu Magazine. pp. 36–37. http://www.softintegration.com/company/pub/accu.html. 

Further reading

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • Computer programming — Programming redirects here. For other uses, see Programming (disambiguation). Software development process Activities and steps …   Wikipedia

  • computer programming — UK US noun [U] ► IT the activity or job of writing programs for computers: »Serious job applicants should have advanced skills in computer programming and software design …   Financial and business terms

  • computer programming language — Introduction       any of various languages for expressing a set of detailed instructions for a digital computer. Such instructions can be executed directly when they are in the computer manufacturer specific numerical form known as machine… …   Universalium

  • Computer programming in the punched card era — Punched card from a Fortran program. From the invention of computer programming languages up to the mid 1980s, many if not most computer programmers created, edited and stored their programs on punched cards. The practice was nearly universal… …   Wikipedia

  • Computer programming in the punch card era — From the invention of computer programming languages into the 1980s, many if not most computer programmers created, edited and stored their programs on punch cards. The practice was nearly universal with IBM computers in the era. In many… …   Wikipedia

  • computer programming — kompiuterio programavimas statusas T sritis automatika atitikmenys: angl. computer programming; machine programming vok. Computerprogrammierung, f; Rechnerprogrammierung, f rus. программирование вычислительной машины, n pranc. programmation d… …   Automatikos terminų žodynas

  • Comment (computer programming) — For comments in Wikipedia markup, see Help:Wiki markup#Character formatting and WP:COMMENT. An illustration of Java source code with prologue comments indicated in red and inline comments in green. Program code is in blue …   Wikipedia

  • Skeleton (computer programming) — Skeleton programming is a style of computer programming based on simple high level program structures and so called dummy code. Program skeletons resemble pseudocode, but allow parsing, compilation and testing of the code. Dummy code is inserted… …   Wikipedia

  • Comparison (computer programming) — Ifeq redirects here. For the MediaWiki feature, see Wikipedia:Ifeq In computer programming, comparison of two data items is effected by the comparison operators typically written as: > (greater than) < (less than) >= (greater than or… …   Wikipedia

  • Literal (computer programming) — In computer science, a literal is a notation for representing a fixed value in source code. Almost all programming languages have notations for atomic values such as integers, floating point numbers, strings, and booleans; some also have… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”