185.276 Analysis and Verification
This course is in all assigned curricula part of the STEOP.
This course is in at least 1 assigned curriculum part of the STEOP.

2016S, VU, 2.0h, 3.0EC, to be held in blocked form

Properties

  • Semester hours: 2.0
  • Credits: 3.0
  • Type: VU Lecture and Exercise

Aim of course

The participants acquire a profound theoretical and practical
understanding of fundamental concepts and principles of program
analysis, verification, and transformation which enables them to apply
techniques and tools resting on them competently and adequately, and
to well-groundedly assess the strengths and limitations of approaches
to program analysis, verification, and transformation, in particular
of automatic ones.

Subject of course

The course is concerned with concepts and principles of basic and
advanced approaches for the analysis and verification of software
systems with a focus on the concepts of soundness, completeness, and
optimality in analysis, verification and transformation. The lecture
part of the course stretches from Hoare logics to program and data
flow analysis, to the theory of abstract interpretation and to
model-checking. Regularly assigned exercises of the tutorial part of
the course give a hands-on experience of applying the various concepts
and principles and approaches based on them to problems and examples
that are mostly taken from the field of optimizing and verifying
compilation.

Part I: Motivation

  • Basics
  • Operational Semantics of WHILE
  • Denotational Semantics of WHILE
  • Axiomatic Semantics of WHILE
  • Worst-Case Execution Time Analysis


Part II: Analysis and Verification

  • Program Analysis
  • Program Verification vs. Program Analysis
  • Reverse Data Flow Analysis
  • Chaotic Fixed Point Iteration
  • Basic Block vs. Single Assignment Graphs


Part III: Transformation and Optimality

  • Elimination of partially dead Assignments
  • Elimination or partially redundant Assignments
  • Combining PRAE and PDCE
  • Constant Folding on the Value Graph


Part IV: Abstract Interpretation and Model-Checking

  • Abstract Interpretation and DFA
  • Modell-Checking and DFA


Part V: Conclusions and Prospectives

  • Summary and Prospectives

Additional information

A joint pre-meeting for all courses offered by the Compilers
andLanguages group tentatively takes place on Wednesday, 2 March 2016,
1.00pm - 2.00pm p.m., in the lecture room EI4, 2nd floor,
Gußhausstr. 25-29.

A specific pre-meeting for the lecture course LVA "Analysis and
Verification" and the first lecture take place on Tuesday, 1 March
2016, at 4.30pm in the "Library E185.1, Argentinierstr. 8, 4th floor (centre).

ECTS Break Down:

The course is assigned 3.0 ECTS points. This corresponds to an average
workload of 75 hours. This average workload is divided among the
various parts of the course as follows:

  • Attending the lectures, pre- and post-processing: 35 hours.
  • Assignments: 30 hours.
  • Preparation for the examination and oral examination: 10 hours.

Lecturers

Institute

Course dates

DayTimeDateLocationDescription
Tue16:00 - 18:0001.03.2016 - 28.06.2016Seminarraum 125 LVA 185.276 VU Analysis and Verification
Analysis and Verification - Single appointments
DayDateTimeLocationDescription
Tue01.03.201616:00 - 18:00Seminarraum 125 LVA 185.276 VU Analysis and Verification
Tue08.03.201616:00 - 18:00Seminarraum 125 LVA 185.276 VU Analysis and Verification
Tue15.03.201616:00 - 18:00Seminarraum 125 LVA 185.276 VU Analysis and Verification
Tue05.04.201616:00 - 18:00Seminarraum 125 LVA 185.276 VU Analysis and Verification
Tue12.04.201616:00 - 18:00Seminarraum 125 LVA 185.276 VU Analysis and Verification
Tue19.04.201616:00 - 18:00Seminarraum 125 LVA 185.276 VU Analysis and Verification
Tue26.04.201616:00 - 18:00Seminarraum 125 LVA 185.276 VU Analysis and Verification
Tue03.05.201616:00 - 18:00Seminarraum 125 LVA 185.276 VU Analysis and Verification
Tue10.05.201616:00 - 18:00Seminarraum 125 LVA 185.276 VU Analysis and Verification
Tue24.05.201616:00 - 18:00Seminarraum 125 LVA 185.276 VU Analysis and Verification
Tue31.05.201616:00 - 18:00Seminarraum 125 LVA 185.276 VU Analysis and Verification
Tue07.06.201616:00 - 18:00Seminarraum 125 LVA 185.276 VU Analysis and Verification
Tue14.06.201616:00 - 18:00Seminarraum 125 LVA 185.276 VU Analysis and Verification
Tue21.06.201616:00 - 18:00Seminarraum 125 LVA 185.276 VU Analysis and Verification
Tue28.06.201616:00 - 18:00Seminarraum 125 LVA 185.276 VU Analysis and Verification
Course is held blocked

Examination modalities

Grading of assignments and an oral examination. The final grade is
composed of the grades of the regular assignments (50%) and the grade
of the final oral examination (50%).

Course registration

Curricula

Study CodeObligationSemesterPrecon.Info
066 931 Computational Intelligence Mandatory elective
066 937 Software Engineering & Internet Computing Mandatory elective

Literature

No lecture notes are available.

Previous knowledge

Basic knowledge in theoretical computer science and programming are
mandatory. Basic knowledge of compiler construction as e.g. imparted
by the courses 185.A48 VU 4.0h "Compilers" or 185.A04 VU 2.0
"Optimizing Compilers are useful but not strictly obligatory.

The course complements the courses 185.A04 "Optimizing Compilers"
und 185.A56 "Semantics of Programming Languages." The course is thus
especially recommended for students who want to specialize in the
field of programming languages and compilers and to write e.g. a seminar
or master thesis in these fields.

Preceding courses

Accompanying courses

Continuative courses

Miscellaneous

Language

German