CS 711: Advanced Programming Languages Topics in Program Analysis

Instructor: Radu Rugina

Time: Tuesday, Thursday 2:30 - 3:30 pm

Place: Upson 5130

Prerequisites: CS412 and CS411/CS611, or permission of the instructor.

This seminar covers advanced topics in program analysis. We will look at analysis techniques that target various programming constructs, including procedures, virtual calls, objects, pointers, recursive structures, threads, and executable code. We will discuss the use of types, program annotations, and specifications in combination with static analysis; and the applications of static analysis to program optimization, verification, and error detection. Finally, we will look at approaches for the automatic generation of static analyzers.

The reading list includes relatively recent papers in each area, as shown in the tentative schedule below. The format of each lecture consists of a 35 min. presentation, and a discussion of the subject for the remaining 25 min. Students who enroll in this class are expected to read each of the papers and express opinions during the discussions; present 1-2 papers; and complete a small course project.

A relevant book that covers several of the topics below is "Principles of Program Analysis", by Flemming Nielson, Hanne Riis Nielson, and Chris Hankin, Springer 1999, ISBN 3-540-65410-0.