IT-C logo

Programming Languages IT-C F2002

This course introduces programming language concepts and tools, such as interpreters, compilers, grammars, parsers, parser generators, abstract machines, type checking, etc. We shall model imperative, functional, and object-oriented programming languages by means of interpreters and simple compilers.

Latest news

Course information

Plan
Lecture plan with links to lecture notes, slides, etc.
When and where
We meet Wednesdays at IT-C Glentevej, starting Wednesday 6 February and ending Wednesday 1 May.
Course format
There will be exercises in the morning (9h-12h in room 3.19, with overflow to 3.15 if necessary) and lectures in the afternoon (13h-16h in room 2.59). The weekly exercises require implementation of programming language concepts.
Teachers
Teaching language
All course materials are in English but the lectures will be given in Danish (unless there is a strong demand to the contrary).
Programming language
We shall use Standard ML (SML) as a meta-language: the language we use to describe other languages, and the language in which we implement interpreters and compilers.
Course materials
Form
We shall study programming language concepts in two ways. First, by learning SML, which is quite different from Java. Secondly, and mostly, by creating implementations of other kinds of programming languages: imperative (C style), functional (SML-style), and object-oriented (Java-style). That way we learn the concepts of those languages and how they are implemented on the computer.
Warning
It is very hard to follow the remainder of the course if you do not get a good grasp of SML early on; this requires solving the weekly exercises.
Official course description
Although the description in the official course database recommended a textbook by Friedman, Haynes, and Wand, I have come to the conclusion that it is not really well-suited for our purpose. The meta-language used in that book, called Scheme, introduces a number of artificial complications. If you can deal with those complications, it is an interesting book to learn from.
Exam
There is a written examination on Wednesday 19 June 2002 (better check with the course database) with books etc. but without computers.
Additional literature
Here are a few pointers to the literature on compilers and interpreters.
Projects
Here is a list of project proposals. It would make good sense to do a four-week project following the course.

Participants


Peter Sestoft (sestoft@dina.kvl.dk) 2002-01-07, 2002-02-25