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.
|
|
Lecture date and time |
Lecture Room |
Exercise date and time |
|
7.2.2008, 12.30 -14.00 !!OBS |
0.1.95 |
14.2.2008, 12.30 -14.15 |
|
|
14.2.2008, 14.30 -16.15 |
0.1.95 |
21.2.2008, 12.30 -14.15 |
|
|
21.2.2008, 14.30 -16.15 |
0.1.95 |
25.2.2008, 8.15-10.00 |
|
|
25.2.2008, 10.15-12.00 |
0.1.95 |
28.2.2008, 12.30 - 14.15 |
|
|
28.2.2008, 14.30 - 16.15 |
0.1.95 |
3.3.2008, 8.15-10.00 |
|
|
3.3.2008, 10.15-12.00 |
0.1.95 |
6.3.2008, 12.30 - 14.15 |
|
|
6.3.2008, 14.30 - 16.15 |
0.1.95 |
27.3.2008, 12.30 - 14.15 |
|
|
27.3.2008, 14.30 - 16.15 |
0.1.95 |
3.4.2008, 12.30 - 14.15 |
|
|
3.4.2008, 14.30 - 16.15 |
0.1.95 |
7.4.2008, 8.15-10.00 |
|
|
7.4.2008, 10.15-12.00 |
0.1.95 |
10.4.2008, 12.30 - 14.15 |
|
|
10.4.2008, 14.30 - 16.15 |
0.1.95 |
14.4.2008, 8.15-10.00 |
|
|
14.4.2008, 10.15-12.00 |
0.1.95 |
17.4.2008, 12.30 - 14.15 |
|
|
17.4.2008, 14.30 - 16.15 |
0.1.95 |
21.4.2008, 8.15-10.00 |
|
|
21.4.2008, 10.15-12.00 |
0.1.95 |
24.4.2008, 12.30 - 14.15 |
|
|
24.4.2008, 14.30 - 16.15 |
0.1.95 |
28.4.2008, 10.15-12.00 !!OBS |
As everybody this year has chosen SPO as PE course,
the course will be evaluated through your projects.
If you would like a guideline for exam syllabus to
prepare yourself for the project exam, you can see the course syllabus from 2007
on this link.
The course is given by Bent Thomsen
The teaching assistant is Kostas Tzoumas
We will us the following two books:
Concepts of Programming Languages (Seventh Edition),
Robert W. Sebesta, Prentice Hall, ISBN 0 321 312511
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 Programming 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 referred to as the
Dragon book, is:
Compilers: Principles, Techniques and Tools, Alfred V.
Aho,
This book is now out in a new and improved version:
Compilers: Principles, Techniques, and Tools (2nd
Edition) by Alfred V. Aho, Monica S. Lam,
For those of you who just need a head to head
comparison of Java and C# I can recommend looking at
C# and Java:
Comparing Programming Languages
For those of you who would like to learn more about
Java, I can highly recommend following the various trails of The Java Tutorial online material from SUN.
I can
recommend two books for those of you interested in thorough descriptions of
Java, respectively C#:
P. Sestoft,
Java Precisely, Second Edition, The MIT Press August 2005. ISBN 0-262-69325-9.
For more information, see the link: Java Precisely - concise
Java quick reference
P. Sestoft and Henrik I. Hansen, C# Precisely, The MIT
Press 2004; second updated printing 2006. ISBN 0-262-69317-8.
For more information, see the link: C# Precisely - concise
C# quick reference
Last updated 30.1.2008