184.703 Program Analysis
This course is in all assigned curricula part of the STEOP.
This course is in at least 1 assigned curriculum part of the STEOP.

2016W, VU, 2.0h, 3.0EC

Properties

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

Aim of course

concrete program analysis techniques, proof of the correctness of these techniques via abstract interpretation, techniques for developing new program analyses

Subject of course

definition of the syntax and semantics of a toy programming language;
simple program analyses, which are used standardly in compilers, such as Reaching Definitions, Live Variable Analysis and Constant Propagation;
program analyses, which are used in program verification such as Interval-, Octagon-, Polyederanalysis for determining program invariants;
advanced program analyses, which are used standardly in compilers, such as Pointer Analysis and Call Graph Analysis;
advanced topics in invariant analysis such as termination- and bound analysis;
the discussed program analyses are defined and proven correct with the technique of abstract interpretation with regard to the earlier defined toy language;

Additional information

For further reading I recommond:

Static Analylsis Course and Script by Michael Schwartzbach, http://cs.au.dk/~mis/static/
Course on Abstract Interpretation by Patrick Cousot, http://web.mit.edu/afs/athena.mit.edu/course/16/16.399/www/
The Book Principles of Program Analysis by Flemming Nielson, Hanne Riis Nielson, Chris Hankin

"Term Rewriting and All That", Franz Baader, Tobias Nipkow, chapter 4.8 contains a good description of the unfication algorithmus used in the first lecture

"Introduction to lattices and order", B. A. Davey and H. A. Priestley is a good introduction into lattice theory

ECTS Breakdown (3ECTS = 75h): 25h lecture, 25h exercises, 25h presentation

Lecturers

Institute

Course dates

DayTimeDateLocationDescription
Wed14:00 - 16:0005.10.2016 - 25.01.2017Seminarraum FAV EG B (Seminarraum von Neumann) Program Analysis - Lecture
Wed17:00 - 21:0025.01.2017Seminarraum FAV EG B (Seminarraum von Neumann) Program Analysis Talks
Program Analysis - Single appointments
DayDateTimeLocationDescription
Wed05.10.201614:00 - 16:00Seminarraum FAV EG B (Seminarraum von Neumann) Program Analysis - Lecture
Wed12.10.201614:00 - 16:00Seminarraum FAV EG B (Seminarraum von Neumann) Program Analysis - Lecture
Wed19.10.201614:00 - 16:00Seminarraum FAV EG B (Seminarraum von Neumann) Program Analysis - Lecture
Wed09.11.201614:00 - 16:00Seminarraum FAV EG B (Seminarraum von Neumann) Program Analysis - Lecture
Wed16.11.201614:00 - 16:00Seminarraum FAV EG B (Seminarraum von Neumann) Program Analysis - Lecture
Wed23.11.201614:00 - 16:00Seminarraum FAV EG B (Seminarraum von Neumann) Program Analysis - Lecture
Wed30.11.201614:00 - 16:00Seminarraum FAV EG B (Seminarraum von Neumann) Program Analysis - Lecture
Wed07.12.201614:00 - 16:00Seminarraum FAV EG B (Seminarraum von Neumann) Program Analysis - Lecture
Wed14.12.201614:00 - 16:00Seminarraum FAV EG B (Seminarraum von Neumann) Program Analysis - Lecture
Wed11.01.201714:00 - 16:00Seminarraum FAV EG B (Seminarraum von Neumann) Program Analysis - Lecture
Wed18.01.201714:00 - 16:00Seminarraum FAV EG B (Seminarraum von Neumann) Program Analysis - Lecture
Wed25.01.201714:00 - 16:00Seminarraum FAV EG B (Seminarraum von Neumann) Program Analysis - Lecture
Wed25.01.201717:00 - 21:00Seminarraum FAV EG B (Seminarraum von Neumann) Program Analysis Talks

Examination modalities

The participants of this lecture give a talk on a current paper on program analysis.

The participants actively participate in the exercises. At the beginning of each exercise they mark in a table which exercises they are able to present on the blackboard. The participants need to mark 50% of the exercises to pass the lecture.

List of presentation topics:

Sparse Dataflow Analysis with Pointers and Reachability, Anders Møller, Magnus Madsen, SAS 2014

Types as Abstract Interpretations, Patrick Cousot, POPL 1997

An abstract domain to infer ordinal-valued ranking function, Caterina Urban, Antoine Miné, ESOP 2014

Relational thread-modular static value analysis by abstract interpretation, Antoine Miné, SAS 2014

A Correspondence between Two Approaches to Interprocedural Analysis in the Presence of Join, Ravi Mangal, Mayur Naik, Hongseok Yang, ESOP 2014

Byte-Precise Verification of Low-Level List Manipulation, Kamil Dudka, Petr Peringer, Tomáš Vojnar, SAS 2013

Precise Relational Invariants Through Strategy Iteration, Thomas Gawlitza, Helmut Seidl, CSL 2007

Effective Static Race Detection for Java, Mayur Naik, Alex Aiken, John Whaley, PLDI 2006

Escape analysis for Java TM: Theory and practice, Bruno Blanchet, TOPLAS 2003

The talks are going to be in the last week of January this semester (Jan 2016, see lecture slides).

Course registration

Not necessary

Curricula

Study CodeObligationSemesterPrecon.Info
066 931 Logic and Computation Mandatory elective
066 937 Software Engineering & Internet Computing Mandatory elective
066 938 Computer Engineering Mandatory elective

Literature

No lecture notes are available.

Language

English