Semantics of programming languages2015HT
|
|
Course plan
No of lectures
~ 12 * 2h
Recommended for
Anybody interested in theoretical aspects of computer science and in precise reasoning about program correctness.
The course was last given
2012 HT (in a different form)
Goals
Introduction to formal description techniques for defining semantics
of programming languages. Introduction to program verification.
We believe this knowledge is necessary for everybody interested in program
correctness, or in formal methods of software engineering.
Prerequisites
Some degree of mathematical maturity; courses on discrete mathematics,
mathematical logic, and formal languages. Some programming
experience and familiarity with a few programming languages.
Organization
Lectures.
Written and lab assignments.
Contents
The core of the course:
- operational semantics (small step and big step approach)
- brief overview of denotational semantics
- axiomatic semantics, proving program correctness, and basics of
systematic construction of provably correct programs.
Additional subjects under consideration
Literature
Main textbook:
Hanne Riis Nielson, Flemming Nielson: Semantics with Applications: An
Appetizer. Springer, 2007.
Lecturers
W. Drabent, A. Rezine
Examiner
W. Drabent, A. Rezine
Examination
Home assignments
Credit
6 hp
Comments
Page responsible: Director of Graduate Studies