The study of programming languages is not the same as the study of
programming. In this course, we will examine the anatomy of
programming languages in general and in particular. We will
consider the features of languages that make them respectively more and
less suited to specific problems. We will address both the syntax
and semantics of programming languages in general and consider three
specific programming languages: ML, Java, and Prolog. Since most
students have already had experience with Java, we will gloss over that
language rather quickly and focus instead on ML and Prolog. We
will also cover the formal semantics of programming languages at a
You will need implementations of the
three languages. You can download ML from Bell Lab's ML site.
Java can be downloaded from Sun
Microsystems. SWI-Prolog can be downloaded from the University of Amsterdam.
(These sites and many other useful resources are linked from the textbook website.)
Each of these are available for both Unix and Windows platforms.
However, I strongly encourage you to take the plunge into Linux if you
are not already using it. I will be assuming the linux platform
in lectures and assignments.
Acknowledgements: I will
extensively use the slides from the required text. The author,
Adam Webber, has links to the languages given above and many
other useful resources available from his text website.