Uday Khedker
This course is an outcome of a UG elective (CS 412: Introduction to Program Analysis), a PG elective (CS:614 Advanced Compilers) which I have taught in past two years and my research (in collaboration with my colleagues) in past three years. Thus, this is a fairly new and fresh course.
The course begins with the mathematical foundations of program analysis and then concentrates on advanced applications of data flow analysis. The advances are in terms of data flow properties which cannot be represented using bit vectors which is the usual model discussed even in advanced courses.
Abstract interpretation: concretisation and abstraction functions, Galois connection.
Type of alias information: Context sentitive/insensitive, flow sensitive.insensitive, may/must
aliases.
Representations of heap properties: shape graphs, alias graphs, storage shape graphs,
k-limiting, compact representations, access graphs.
Data flow analysis for aliases.
Shape graphs and heap safety automaton based approach.
Type inferencing for validation and type inferencing for optimization.
Data flow analysis for monomorphic languages. Extensions for polymorphic types, type graphs and operations.
Context sensitive/insensitive analysis. Functional approach. Call strings approach. Call strings graphs. Call strings approach for k-bounded problems.
There is no particular book which can be used as a text book. The course is based on research papers and selected book chapters listed in the reference list.
Prof. A. Sanyal, Prof. S. Biswas Prof. D. M. Dhamdhere