Welcome to the home page of the SPO course given to
DAT2, SW4 and F6S students at the Department of Computer Science,
The purpose of the course is for the student to gain
knowledge of important principles in programming languages and for the student
to gain an understanding of techniques for describing and compiling programming
languages.
Follow the links to further information about topics
and exercises for each lecture.
Follow this link for
information about the syllabus and the exam.
The course is given by Bent Thomsen
The teaching assistants
We will us the following two books:
Concepts of Programming Languages (Sixth Edition),
Robert W. Sebesta, Prentice Hall, ISBN 0 321 20458 1
Programming Language Processors in Java – Compilers
and Interpreters, David A Watt and Deryck F Brown, Prentice Hall, ISBN
0-13-025786-9
An errata for this book has been published on http://www.dcs.gla.ac.uk/~daw/books/PLPJ/errata.html
Why do we need two books for this course?
Well – you could use a lot more books, but these two
books cover the two main topics of Design and Implementation of Programming
Languages.
For further motivation why you would need more than
one book for this course, follow the link to Amazon.com: So
You'd Like to... Write or Create a Compiler
For those of you who would like additional reading I
can recommend the following books:
Programming Languages – Design and Implementation
(Fourth Edition), Terrence W. Pratt and Marvin V. Zelkowitz, Prentice Hall,
ISBN 0-13-027678-2
Concepts in Prograzmming Languages, John C. Mitchell,
Compiling for the .NET Common Language Runtime (CLR),
John Gough, Prentice Hall, ISBN 0 13 062296 6
Modern compiler implementation in Java (second
edition), Andrew W. Appel, Cambridge University Press, ISBN 0-521-82060-X.
Be sure you get the second edition, as it is much
improved over first and the preliminary editions!
However the first edition comes in three variants:
Modern compiler implementation in Java
Modern compiler implementation in C
Modern compiler implementation in ML
If you are using ML as your implementation language I
will recommend that you read the ML variant of Appel’s book
The above books are often referred to as the Tiger
books, although it is left unspecified which version of the book is the
Tiger book.
If you are implementing ML, an extension to ML or an
ML like language you should read the book:
Compiling with Continuations, Andrew W. Appel,
Cambridge University Press, ISBN 0521416957
A classic compiler book, often refered to as the
Dragon book, is:
Compilers: Principles, Techniques and Tools, Alfred V.
Aho, Ravi Sethi and Jeffrey D. Ullman, Addiso-Wesley, ISBN 0201100886
Last updated 19.04.2004