A number of resources are available here ranging from
links to interpreters to interesting language related
items. All of the languages we use in class are freely
available for Windows, OS X, and Linux.
An excellent introductory Java tutorial by the folks
that brought you Java initially. Specifically look at
basic language features, object-oriented features,
writing Java applets, and a section on GUI design. The
tutorial is a part of the Java site mentioned above. I
quite like this tutorial, particularly for people who
already know C++ or programming in another C-style
language.
A source for all things Java from the folks at Sun who
originated the language. Tons of material here
including tutorials and libraries. Rather than ask you
to purchase one of the thousands of Java books, I refer
you to this site.
The Eclipse cross-platform, cross-language development
envionment. Excellent resource for developing Java
programs.
A source for all things Scheme related. Several
implementations, reference guides, examples and other
interesting things. Of particular interest is Guile,
the GNU extension language that is a Scheme dialect.
Highly recommended.
The Scheme Programming Language - An online version of
a text by Kent Dybvig
A comprehensive bibliography on Scheme related
research.
Another site with lots of scheme information.
An excellent paper by Richard Gabriel that goes trough
the derviation of the Y combinator. Definitely not
required reading, but those of you who are interested
in advanced techniques will find this interesting.
A source for all things Haskell related. You will find
compilers and interpreters, development tools,
tutorials and examples here. If you are interested in
pursuing Haskell further, there is also a list of
ongoing Haskell projects and communities. If you look
closely, you may find KU in there...
There are numerous interpreters for the Haskell
language. Amoung the most popular are GHC and HUGS.
Links to both systems with RPMs and source are
available from this page. GHC is the interpreter we
will be using in class, although most of the projects
should perform similarly in HUGS.
A compressed tarball containing the latest and greatest
emacs mode for Haskell. There are a couple of other
Haskell modes for emacs, but this is the one I use. I
don't know if it works under xemacs or not.
A comprehensive bibliography of work people are doing
related to Haskell programming.
Another site with lots of information on Haskell
Website for a book under development on practical
applications of Haskell. The book will eventually be
published by O'Reilly, thus I'm reasonably sure the
"real world" description should be accurate.
Some random thoughts on how to test and demonstrate
your code. Although specific to Java, most of the
techniques apply more generally. Take a look at this
before you hand in your homeworks to get an idea of
what we expect. You will learn much more about testing
in your Software Engineering course - this document is
intended to get you started along the right path.
FAQ file that describes how Java is used and accessed
on the EECS Linux machines.
FAQ file that describes how Scheme is used and accessed
on the EECS Linux machines.
FAQ file that describes how Haskell is used and
accessed on the EECS Linux machines.
A solution for Homework 3. Please excuse the sparseness
of the documentation.
Test functions for Homework 3
A solution for Homework 4. Please see the blog for
additional details
Homework 5 test functions. Read the documentation!
Graham Hutton's wonderful paper on fold and unfold for
defining program semantics
Notes on Graham Hutton's paper as well as executable
code
Duponcheel's paper on writing modular interpreters
Notes on Duponcheel's paper including exectuable code