News

      • 14.02.2013: We are online!
      • 06.06.2013: There will be no exercise class on Monday June 10. Solutions to Exercise 5 can be handed in at Stephen Wu's office or e-mailed to Stephen Wu.


      Schedule

      Type

      Day

      Time

      Place

      Start

      Lecturer

      V3

      Wed

      10:00-11:30

      AH 6

      Apr 10

      Thu

      15:00-16:30

      AH 5

      Apr 11

      Ü2

      Mon

      10:00-11:30

      AH 2

      Apr 29


      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. Compiler correctness
      7. Extensions: procedures, parallelism, ...


      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

      Apr 10

      Introduction

      2

      Apr 11

      Operational Semantics of WHILE I

      (Evaluation of Expressions)

      3

      Apr 17

      Operational Semantics of WHILE II

      (Execution of Statements)

      4

      Apr 18

      Operational vs. Denotational Semantics of WHILE

      5

      Apr 24

      Denotational Semantics of WHILE I

      (Fixpoint Semantics)

      6

      Apr 25

      Denotational Semantics of WHILE II

      (CCPOs and Continuous Functions)

      7

      May 2

      Denotational Semantics of WHILE III

      (The Fixpoint Theorem and Its Application)

      8

      May 8

      Axiomatic Semantics of WHILE I

      (Introduction)

      9

      May 15

      Axiomatic Semantics of WHILE II

      (Hoare Logic)

      10

      May 29

      Axiomatic Semantics of WHILE III

      (Completeness & Total Correctness)

      11

      Jun 5

      Axiomatic Semantics of WHILE IV

      (Semantic Equivalence)

      12

      Jun 6

      Provably Correct Implementation I

      (Abstract Machine)

      13

      Jun 12

      Provably Correct Implementation II

      (The Compiler & Its Correctness)

      14

      Jun 19

      Extension by Blocks and Procedures I

      (Operational Semantics)

      15

      Jun 20

      Extension by Blocks and Procedures II

      (Denotational Semantics)

      16

      Jun 26

      Nondeterminism and Parallelism I

      (Shared-Variables and Channel Communication)

      17

      Jun 27

      Nondeterminism and Parallelism II

      (Communicating Sequential Processes)

      18

      Jul 4

      Nondeterminism and Parallelism III

      (Calculus of Communicating Systems)

      19

      Jul 10

      Nondeterminism and Parallelism IV

      (Equivalence of CCS Processes)

      20

      Jul 11

      Nondeterminism and Parallelism IV

      (Wrap-Up)

      21

      Jul 17

      Cancelled

      22

      Jul 18

      [Exercise class]


      Exercises

      The exercise sheets will be made available on Mondays. Please hand in your solution in before the beginning of the exercise classes, i.e., on Monday before 10:00 am.

      Admission to the examination requires at least 50 % of the points in the exercises.

    •   Hand in April 22
    •   Hand in April 29
      Note for Exercise 1b: in the single-step semantics, <skip,σ> is a final configuration, i.e. there is no next state from there. This only applies to the skip statement by itself.
    •   Hand in May 6. Sample solution for exercise 3(e):
    •   Hand in May 13
    •   Hand in May 27
    •   Hand in June 10 (since there will be no exercise class on June 10, please hand in your answer sheets in Room 4207)
    •   Hand in June 24
    •   Hand in July 1
    •   Hand in July 8. Transition relation graph for exercise 3(b):
    •   Hand in July 15
    •  

       


      Exercise results

      Matriculation number

      Score

                                            

       

      279034

      61,93%

       

       

      279179

      55,96%

       

       

      283253

      55,96%

       

       

      283996

      17,89%

       

       

      293298

      84,86%

       

       

      293534

      87,61%

       

       

      294761

      87,61%

       

       

      296753

      87,61%

       

       

      297271

      83,94%

       

       

      300760

      84,86%

       

       

      302300

      55,96%

       

       

      302559

      70,64%

       

       

      307777

      59,63%

       

       

      315412

      70,64%

       

       

      328707

      70,64%

       

       

      Any students not mentioned, were below 50%.


      Exam

      The exam is organized in oral form. The following periods arre offered:

      • Mon 22 July - Fri 26 July
      • Thu 15 August - Wed 21 August
      • Wed 4 September - Fri 11 October

      Please contact Thomas Noll directly for arranging an appointment. Registration is possible via Campus.


      Literature