The files beneath this directory contain source code for most of the
nontrivial code fragments in Programming Language Pragmatics, 3e.  In
most cases the code in the book does not constitute a complete and
runnable program, so these have been extended.  In general the goal has
been to create as small a program as possible that illustrates the
feature in question.  The result is not always good programming style.

In a few cases (generally when the point is to observe the behavior of
the compiler itself), the example is just a single module, and will not
produce runnable code.  These must typically be compiled with a "-c"
command-line switch.

Comments at the top of the source indicate the corresponding Example,
Figure, or Exercise in the book.  Code that appears both as an Example
or Exercise and as a Figure is provided in a directory named after the
Example.

Code has been compiled and tested using the following compilers and
interpreters:

Ada: gnat (gcc) version 4.4.0 on MacOS 10.5
awk: BSD version shipped with MacOS 10.5
C and C++: gcc version 4.4.0 on MacOS 10.5
C#: mono gmcs version 2.2 on MacOS 10.5
        available from www.mono-project.com/
Common Lisp: CMU Common Lisp 19e on Fedore Core Linux 2.6.23
elisp: emacs version 22.2.1 on MacOS 10.5
Erlang: erl emulator version 5.6.4 (release R12B-4) on Fedora Core Linux 2.6.23
        available from erlang.org/
F#: Microsoft fsc or fsi version 1.9.6.2 on mono 2.2 on MacOS 10.5
Fortran: gfortran 4.4.0 on MacOS 10.5
Haskell: hugs September 2006 version on MacOS 10.5
        available from www.haskell.org/hugs/
Icon: version 9.4.2 on MacOS 10.5
        available from www.cs.arizona.edu/icon/
Java: Sun javac 1.6.0 on MacOS 10.5
JavaScript: version embedded in Safari 3.2.1 browser on MacOS 10.5
ML: Standard ML of New Jersey (sml) version 110.69 on MacOS 10.5
        available from www.smlnj.org/
Modula-2: XDS xc compiler, version 2.51 on Fedora Core Linux 2.6.23
        available from www.info.uni-karlsruhe.de/~modula/
Modula-3: cm3 compiler, version 5.4.0 on Fedora Core Linux 2.6.23
        available from modula3.elegosoft.com/
Pascal: gpc version 20070904, based on gcc-3.4.6, on MacOS 10.5
        available from www.microbizz.nl/gpc.html
Perl: version 5.8.8 on MacOS 10.5
PHP: version 5.2.6 under Apache 2.2.9 on MacOS 10.5
Prolog: SWI-Prolog version 5.6.23 on Fedora Core Linux 2.6.23
        available from www.swi-prolog.org/
Python: version 2.5.1 on MacOS 10.5
Ruby: version 1.8.6 on MacOS 10.5
Scheme: DrScheme version 4.1 on MacOS 10.5
        available from download.plt-scheme.org/drscheme/
sed: BSD version shipped with MacOS 10.5
Smalltalk: GNU Smalltalk (gst) version 3.1 on MacOS 10.5
SR: version 2.3.3 on Fedora Core Linux 2.6.23
        available from www.cs.arizona.edu/sr
Tcl: ActiveTcl version 8.5.5 on MacOS 10.5
        available from www.activestate.com/activetcl/
XSLT: TestXSLT version 3.1 on MacOS 10.5
        available from www.entropy.ch/software/macosx/
