CS655 information for students
Course description
Here is a description of the course .
You can read my daily class
notes, updated after each class session (but generally not available
before). The in-class "blackboard" is also available
here.
Textbook online
You can see the textbook
here. Is is also online
here
and here
if you would like to read it that way. It costs you 2c/page to print the online
version.
Appendix to the textbook
Here is the appendix to the textbook.
Other resources
Bo Majewski has created
a nice map of programming language origins.
Éric Lévénez has built a
very nice list of programming languages
with references and a chart.
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.
Io
Amalthea, an Io interpreter, for M$ computers
|
documentation
Diagram of the call to MakePair
Trace of figures 25, 26
A brief discussion of AND and OR in Io
ML
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 *)
Currying
This page shows
some details on how ML implements first-class functions in the context of
Currying.
Haskell
Here are my notes and the
examples from class.
Lisp examples
Here are the Lisp examples discussed in class.
Here are varieties of mapcar discussed in class,
written in CLisp.
Lisp evaluator
Here is a working Lisp evaluator in CLisp to
start you off, courtesy of Bill Dieter.
Here is the Lisp evaluator discussed in class.
Smalltalk examples
Here are the Smalltalk examples discussed in
class.
Here are other Smalltalk examples.