C/Ch Resources

You can find more helpful information and materials here for your coding and computing learning.

  • A list of C/Ch related books are listed here. If you are planning to write a book based on SoftIntegration products, you can get the support from SoftIntegration by joining our book writting program.

    1. Learning Computer Programming with Ch for the Absolute Beginner An introductory textbook for beginners to learn computer programming (free pdf available)
    2. Learning Arduino with Ch Programming for the Absolute Beginner (free pdf available)
    3. Learning Arduino with C Programming (free pdf available)
    4. Ch Mindstorms Package User's Guide A User's guide on how to program Lego Mindstorms NXT and EV3 in C/C++ interpreter Ch. (free pdf available)
    5. Learning Robot Programming with Linkbot for the Absolute Beginner (free pdf available)
    6. C for Engineers and Scientists: An Interpretive Approach
    7. Advanced Programming in the Unix Environment
    8. GTK+ Programming in C

    C for Engineers and Scientists: An Interpretive Approach and Chinese edition
    by Harry H. Cheng (Chief Architect of Ch),
    McGraw-Hill, Inc., 2009,
    ISBN: 0073376051, ISBN-13: 978-0073376059.

    C for Engieners and Scientists C for Engieners and Scientists in Chinese

    Ch book review exerpts:

    "Generally, textbooks on topics such as C programming are evolutionary, not revolutionary. In contrast, Harry Cheng's entry is an innovative textbook and programming environment that defines a new interactive paradigm for learning and using C and C++ that's particularly well suited for scientists and engineers.

    In my January 2010 programming course, the students were almost equally split between Mac and PC users. Cheng's software and textbook package let us all focus on developing programs, without concerns about merging computer tools --- that is, compilers and plotting and analysis packages --- on multiple platforms. ...

    The bottom line for a post-use review is one question: Would I use the text again? In the case of C for Engineers and Scientists. An Interpretive Approach, the answer is yes.

    Students agreed with this assessment; in their post-use survey, when asked whether the book should be used in future course offerings, all students answered "yes."

    After using this textbook and the Ch interpreter, I have a new respect for the role of interpreters as an alternative to traditional compilers for introducing computer programming."

    --- Excerpts from the book review by Professor Thomas M. Huber, "An Introduction to C and Ch: Your One-Stop Shop for Scientific Computing", IEEE Computing in Science and Engineering. Vol. 12, No. 4, July/August 2010.

    Advanced Programming in the Unix Environment
    by W. Richard Stevens,
    1993 (19th printing, 1999)
    Addison Wesley Longman, Reading, MA.

    You need to download these Ch function files to run sample programs in the book. After you download the file, install in by the command "gzip -cd unix_ch.tar.gz|tar -xvf -". Then add the directory for these function files in the system variable _fpath in system-wide startup file CHHOME/config/chrc or individual user's startup file ~/.chrc in a user's home directory.

    Ch is a superset of C with classes in C++, there are some minor differences among Ch, C, and C++. For example, Ch have a few more keywords, such as complex in C99 and class in C++, than C90. Some of the original sample C90 code in the books may need to be modified slightly in order to run in Ch/C/C++. We just show the example C/C++ code in the books that have been tested to work with Ch.

    GTK+ Programming in C
    by Syd Logan
    2002 Prentice Hall

    All GTK+ code examples presented in this book had been tested in Ch on Solaris in June, 2003.

    Here is a list of bugs existing in the examples of the book.

    (1) book/chapter11/packer/packer.c Ch is powerful in detecting buffer overflow in arrays. Most C/C++ compilers cannot detect such an error. Program packer.c contains a buffer overflow bug. To fix this bug, change line 26 from char buf[10]; to char buf[20]; or use Variable Length Array in C99 as shown at http://www.softintegration.com/demos/chstandard/c99.html#3 (2) book/chapter11/packer/itemfactory.c Change line 54 from static gpointer foo=(gpointer0 0x12345678L; to static gpointer foo=(gpointer) 0x12345678L; (3) book/chapter9/menu/menu.c has a bug. It needs to be changed from myMenuItem = (GtkMenuItem *) menu_items = gtk_check_menu_item_new_with_label (buf); to menu_items = gtk_check_menu_item_new_with_label (buf); myMenuItem = (GtkMenuItem *) menu_items; (4) book/chapter9/itemfactory2/itemfactory.c will crash in both compiled C program or run in Ch when clicking menu inside the window after button is clicked and hold-on. Link to download the GTK+ C code