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