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