News

      • 21.12.2011: Evaluation results are online
      • 18.11.2011: Updated (corrected) exercise sheet!
      • 09.11.2011: Due to the "Fachschaftsvollversammlung" the exercise class presenting the solution of exercise 2 will take place at the lecture date and location (10:00 - 11:30 a.m. in AH 2). Therefore you can hand in your solution for Exercise 1 until Wednesday, before 10 o'clock!
      • 17.10.2011: There will be no exercise class on Tuesday, October 18th. The first exercise class will take place on Tuesday, October 25th.
      • 22.09.2011: We are online!


      Schedule

      Type

      Day

      Time

      Place

      Start

      Lecturer

      V3

      Wed

      10:00-11:30

      AH 2

      Oct 12

      Thu

      13:30-15:00

      AH 1

      Oct 13

      Ü2

      Tue

      11:45-13:15

      AH 6

      Oct 25


      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 semantics for programming languages, with particular emphasis on software verification. The following topics will be covered:

      1. The imperative model language WHILE
      2. Operational semantics of WHILE
      3. Denotational semantics of WHILE
      4. Equivalence of operational and denotational semantics
      5. Axiomatic semantics of WHILE
      6. Extensions: procedures and dynamic data structures
      7. Compiler correctness


      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 12

      Introduction

      2

      Oct 13

      Operational Semantics of WHILE I

      (Evaluation of Expressions)

      3

      Oct 26

      Operational Semantics of WHILE II

      (Execution of Statements)

      4

      Nov 10

      Operational Semantics of WHILE III

      (Properties of Execution Relation)

      5

      Nov 16

      Denotational Semantics of WHILE I

      (Fixpoint Semantics)

      6

      Nov 17

      Denotational Semantics of WHILE II

      (Chain-Complete Partial Orders)

      7

      Nov 23

      Denotational Semantics of WHILE III

      (Continuous Functions and Fixpoint Theorem)

      8

      Nov 24

      Denotational Semantics of WHILE IV

      (Equivalence with Operational Semantics)

      9

      Nov 30

      Axiomatic Semantics of WHILE I

      (Introduction)

      10

      Dec 7

      Axiomatic Semantics of WHILE II

      (Hoare Logic)

      11

      Dec 8

      Axiomatic Semantics of WHILE III

      (Correctness of Hoare Logic)

      12

      Dec 14

      Axiomatic Semantics of WHILE IV

      (Total Correctness Properties)

      13

      Dec 15

      Axiomatic Semantics of WHILE V

      (Semantic Equivalence)

      14

      Dec 21

      Extension by Blocks and Procedures I

      (Operational Semantics)

      15

      Jan 11

      Extension by Blocks and Procedures II

      (Denotational Semantics)

      16

      Jan 18

      Provably Correct Implementation I

      (Abstract Machine)

      17

      Jan 19

      Provably Correct Implementation II

      (Compiler & Its Correctness)

      18

      Jan 25

      Nondeterminism and Parallelism I

      (Shared-Variables and Channel Communication)

      19

      Jan 26

      Nondeterminism and Parallelism II

      (Communicating Sequential Processes)

      20

      Feb 1

      Nondeterminism and Parallelism III

      (Calculus of Communicating Systems)

      21

      Feb 2

      Nondeterminism and Parallelism IV

      (Equivalence of CCS Processes)


      Exercises

      The exercise sheets will be available on Tuesdays. Please hand your solution in before the beginning of the exercise classes, i.e. on tuesday before 11:45 am.

       

      Examination admission requires at least 50 % of the points in the exercises.


      Exam

      The exam will be organized in oral form. Dates are scheduled by appointment with Dr. Noll (preferably via e-mail), between February and April. Regarding registration, the following rules apply:


      Evaluation results


      Literature