Semantics for Programming Languages is a 6-point (högskolepoäng) course. It is elective for D4 and IT4, but can also be read by others who are interested, such as graduate students.

To give a semantics for a programming language means to give a precise definition of the behaviour of programs written in this language. Only when the semantics of the language has been fixed, one can go about and prove such important properties like determinism and termination of program execution, equivalence of programs, correctness of translation of programs from one programming language into another, or that a program is correct. Different semantic styles have been developed for different purposes, depending on the level of detail needed for the particular task. The most important ones are: operational semantics, denotational semantics and axiomatic semantics.

The overall aim of the course is to study the main semantic styles used for capturing the meaning of programs in a formal way, compare their strengths and weaknesses, and analyze how they can be used for establishing important properties of programming languages, concrete programs, and transformations on programs. A secondary goal is to learn the theories and proof techniques on which such semantic investigations are based.

The course is given in English. However, students can use Swedish when writing assignments and exams, and when communicating with the lecturer.


Staff

Course leader and lecturer:  Dilian Gurov, e-mail dilian at csc.kth.se, phone 08-790 81 98.

Visiting address:  Osquars backe 2, floor 4, room 4417.