CS655 information for students

Course description

Here is a description of the course . The textbook is online if you would like to read it that way. It costs you 2c/page to print the online version. You can read my daily class notes, updated after each class session (but generally not available before).

Appendix to the textbook

Here is the appendix to the textbook.

Other resources

This interview with the developers of C, C++, and Java is full of fascinating insights. Thanks to B. Krishna for pointing it out to me. I mentioned Intercal in class. Here is a book section on this marvelous language.

Notes on iterators

You can get iters.h from here.

You might need this before the #include line:

# define bcopy(s, d, n) memcpy ((d), (s), (n))

Debugging hints: Make sure you place IterSTART at the start of every procedure that includes IterYIELD or IterFOR. Don't put IterSTART in any other procedures. Make sure you place IterDONE at the end of every procedure that uses IterYIELD. Don't put IterDONE anywhere else. You must use IterSUB to invoke procedures from any procedure that includes IterYIELD.

This example shows how Python generators can be invoked in a coroutine fashion.


Amalthea, an Io interpreter, for M$ computers | documentation
A brief discussion of AND and OR in Io
Diagram of the call to MakePair
Trace of figures 25, 26


Here are the ML examples from class.

Here are some web materials on ML: first second.

If my ML source file is called "foo.ml", I like to put the following function in that file:

	val reload = fn _ => use "foo.ml"; (* helps during repeated runs *)