News
- 30.01.09 - The evaluation results for the lectures and the exercises are available.
- 04.11.08 - We have decided to put the solutions online. Feel free to use them.
- 29.10.08 - Now! every exercise contains the number of points. The golden rule: you need to accumulate >= 50% of the total number of points in order to be eligible for the SVS exam.
- 29.10.08 - There is no lecture on 30.10.08
- 29.10.08 - The time of the exercise class remains the same. The solutions of the exercises will not be published online.
Schedule
Type | Day | Time | Place | Start | Lecturer |
V4 | Mon | 11:45-13:15 | AH 2 | Oct. 20 | |
Thu | 13:30-15:00 | AH 1 | Oct. 16 | ||
Ü2 | Mon | 13:30-15:00 | AH 2 | Oct. 27 |
Contents
The analysis and verification of software systems is an important issue. In particular, safety-critical systems are ones in which errors can be disastrous: loss of life, major financial losses, etc. Techniques to safeguard against such scenarios are essential for such systems. Testing can identify problems, especially if done in a rigorous fashion, but is generally not sufficient to guarantee a satisfactory level of quality. Formal methods, on the other hand, offer techniques ranging from the description of requirements in a formal notation to allow for rigorous reasoning about them, to techniques for automatic verification of software.
The goal of this course is to provide an introduction to the field of formal software verificatio
The following topics will be covered:
- The imperative model language WHILE
- Operational semantics of WHILE
- Denotational semantics of WHILE
- Equivalence of operational and denotational semantics
- Axiomatic semantics of WHILE
- Dataflow analysis
- Extensions: procedures and dynamic data structures
Prerequisites
Basic knowledge in the following areas is expected:
- Essential concepts of imperative programming languages
- Formal languages and automata theory
- Mathematical logic
Lectures
No. | Date | Topic | Overlays | Handout |
|---|---|---|---|---|
1 | Oct. 16 | Introduction | ||
2 | Oct. 20 | Operational Semantics of WHILE I
(Evaluation of Expressions) | ||
3 | Oct. 23 | Operational Semantics of WHILE II
(Execution of Statements) | ||
4 | Oct. 27 | Operational and Denotational Semantics | ||
5 | Nov. 3 | Denotational Semantics of WHILE I
(Fixpoint Semantics of WHILE Loop) | ||
6 | Nov. 6 | Denotational Semantics of WHILE II
(Chain-Complete Partial Orders) | ||
7 | Nov. 10 | Denotational Semantics of WHILE III
(Continuous Functions and Fixpoint Theorem) | ||
8 | Nov. 13 | Operational/Denotational/Axiomatic Semantics of WHILE | ||
9 | Nov. 17 | Axiomatic Semantics of WHILE I
(Hoare Logic) | ||
10 | Nov. 20 | Axiomatic Semantics of WHILE II
(Soundness of Hoare Logic) | ||
11 | Nov. 24 | Axiomatic Semantics of WHILE III
(Completeness and Equivalence) | ||
12 | Dec. 1 | Axiomatic Semantics of WHILE IV
(Total Correctness) | ||
13 | Dec. 4 | Semantics of Blocks and Procedures | ||
14 | Dec. 8 | Dataflow Analysis I (Introduction) | ||
15 | Dec. 11 | Dataflow Analysis II
(Available Expressions & Live Variables) | ||
16 | Dec. 15 | Dataflow Analysis III (The Framework) | ||
17 | Dec. 18 | Dataflow Analysis IV (Equation Solving) | ||
18 | Jan. 5 | Dataflow Analysis V
(Efficient Fixpoint Computation) | ||
19 | Jan. 8 | Dataflow Analysis VI (MOP Solution) | ||
20 | Jan. 12 | Dataflow Analysis VII (MOP vs. Fixpoint Solution) | ||
21 | Jan. 15 | Dataflow Analysis VIII
(Interprocedural MVP Solution) | ||
22 | Jan. 19 | Dataflow Analysis IX
(Interprocedural Fixpoint Solution) | ||
23 | Jan. 22 | Dataflow Analysis X
(Interprocedural Fixpoint Solution & Wrap-Up) | ||
24 | Jan. 26 | Provably Correct Implementation I
(Abstract Machine & Compiler) | ||
25 | Jan. 29 | Provably Correct Implementation II
(Compiler Correctness)
| ||
26 | Feb. 2 | Wrap-Up |
Literature
- Glynn Winskel: The Formal Semantics of Programming Languages, The MIT Press, 1996
- Hanne R. Nielson, Flemming Nielson: Semantics with Applications: A Formal Introduction, Wiley, 1992
- Flemming Nielson, Hanne R. Nielson, Chris Hankin: Principles of Program Analysis, 2nd ed., Springer, 2005

