News

      • 08.07.2010: The evaluation results of the lectures and exercise classes are available.
      • 20.05.2010: Master students have to register by May 28 for the exam (see below).
      • 23.04.2010: Starting in week 18, the Wednesday lecture (10:00 at AH 6) will be moved to Friday (13:45 at AH 1).
      • 20.04.2010: In week 17, exercise class and Friday lecture will be switched (see below)
      • 11.03.2010: We are online!


      Schedule

      Type

      Day

      Time

      Place

      Start

      Lecturer

      V4

      Thu

      15:00-16:30

      AH 5

      April 15

      Fri

      13:45-15:15

      AH 1

      May 7

      Ü2

      Mo

      10:00-11:30

      AH 2

      Apr. 26


      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. Dataflow analysis
      7. 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

      April 15

      Introduction

      2

      April 21

      Operational Semantics of WHILE I

      (Evaluation of Expressions)

      3

      April 22

      Operational Semantics of WHILE II

      (Execution of Statements)

      4

      April 26

      Operational Semantics of WHILE III

      (Properties of Execution Relation)

      5

      April 29

      Operational/Denotational Semantics of WHILE

      6

      May 6

      Denotational Semantics of WHILE I

      (Fixpoint Semantics of WHILE Loop)

      7

      May 7

      Denotational Semantics of WHILE II

      (Chain-Complete Partial Orders)

      8

      May 14

      Denotational Semantics of WHILE III

      (Continuous Functions and Fixpoint Theorem)

      9

      May 20

      Equivalence of Operational and Denotational Semantics

      10

      May 21

      Axiomatic Semantics of WHILE I

      (Introduction)

      11

      June 4

      Axiomatic Semantics of WHILE II

      (Hoare Logic)

      12

      June 10

      Axiomatic Semantics of WHILE III

      (Correctness of Hoare Logic)

      13

      June 11

      (AH 3)

      Axiomatic Semantics of WHILE IV

      (Relative Completeness and Total Correctness Properties)

      14

      June 17

      Axiomatic Semantics of WHILE V

      (Total Correctness and Semantic Equivalence)

      15

      June 24

      Semantics of Blocks and Procedures

      16

      June 25

      Provably Correct Implementation I

      (Abstract Machine & Compiler)

      17

      July 1

      Provably Correct Implementation II

      (Correctness of Compiler)

      18

      July 2

      Dataflow Analysis I

      (Introduction & Available Expressions Analysis)

      19

      July 8

      Dataflow Analysis II

      (Live Variables Analysis)

      20

      July 15

      Dataflow Analysis III

      (The Framework)

      21

      July 16

      Dataflow Analysis IV

      (Solving Dataflow Equation Systems)

      22

      July 22

      Dataflow Analysis V

      (The MOP Solution)

      23

      July 23

      Dataflow Analysis VI

      (MOP vs. Fixpoint Solution & Wrap-Up)


      Exercises

      Exercise sheets will be made available on Mondays. The deadline for handing in your solution is on Mondays, before

      No.

      Online

      Hand in

      Exercise Sheet

      Solution

      1

      April 19

      April 30

      Friday, April 30th

      2

      April 26

      May 3

      Monday, May 3rd 

      3

      May 3

      May 10

      Monday, May 10th

      4

      May 10

      May 17

      Exercise 4 updated!

      Monday, May 17th

      5

      May 17

      May 31

      Monday, May 31st

      6

      May 31

      June 7

      Monday, June 7th

      7

      June 7

      June 14

      Monday, June 14th

      8

      June 14

      June 21

      Monday, June 21st

      9

      June 21

      June 28

      Monday, June 28th

      10

      June 28

      July 5

      Monday, July 5th

      11

      July 5

      July 12

      Exercise 11 updated!

      Monday, July 12th

      12

      July 12

      July 19

       

       

      Monday, July 19th

      13

      July 19

      July 26 (optional)

      Exercise 13 (optional)


      Exam

      The exam will be organized in oral form. Dates are scheduled by appointment with Dr. Noll (preferably via e-mail), either in the second half of July or between beginning of September and mid-October. Regarding registration, the following rules apply:


      Literature