Programming Languages and Formal Semantics

Programming Languages and Formal Semantics



Purpose:
The purpose of this course is to introduce

- a selection of programming paradigms, to ensure that the student is familiar with and masters the associated basic programming concepts and techniques,

-fundamental concepts, techniques, and results regarding formal semantics of programming languages, as well as applications of these in various aspects of software development.

Contents:
The course will focus on

- functional languages, including concepts such as higher-order functions, lazy data structures, and polymorphism

- reactive languages, including various communication disciplines

- operational semantics of programming languages, and soundness and relative completeness of axiomatic semantics

-illustrative applications of semantics in compiler construction and software validation

-experiments with verification tools.

Lecturer
Peter D. Mosses

Literature
Jeffrey D. Ullman: Elements of ML Programming (ML97 Edition), Prentice Hall, 1998; and Peter D. Mosses: Fundamental Concepts and Formal Semantics of Programming Languages (course notes), to appear, 2003.

Prerequisites
dIntProg, dADS and dModLog

Lectures
3 hours/week

Examination
4 hours written exam, 13 scale.

Tutorials
3 hours/week

Compulsory exercises:
A small number of compulsory exercises will be set and only students solving them satisfactorily will be admitted to the exam.

Course Language
Danish or English

Credits
10 ECTS

Quarter
1+2