CS655 information for students
Here is a description of the course .
The textbook is online here
and (better) here
if you would like to read it that way. It costs you 2c/page to print the online
You can read my daily class
notes, updated after each class session (but generally not available
Appendix to the textbook
Here is the appendix to the textbook.
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
# 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
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.
shows how Python generators can be invoked in a coroutine fashion.
Amalthea, an Io interpreter, for M$ computers
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:
If my ML source file is called "foo.ml", I like to put the following function in
val reload = fn _ => use "foo.ml"; (* helps during repeated runs *)
This page shows
some details on how ML implements first-class functions in the context of
Here are my notes.
Here are the lisp examples discussed in class.
Here are varieties of mapcar discussed in class,
written in CLisp.
Here is a working Lisp evaluator in CLisp to
start you off, courtesy of Bill Dieter.
Here is the Lisp evaluator discussed in class.