CSCI 3294 - Program Analysis

Instructor: Dr. Mark Lewis

Office: Hassell 201K (999-7022)

Office Hours: 9:30-10:00 MWF, 8:30-11:30am T, 3:00-4:00pm MW or by appointment

Class Times and Location: 2:10-4:10pm Tuesday in HAS 340

Text: None. The readings for this class will come the proceedings of various conferences on programming languages and are listed below in the class schedule.

Course Description: In this special topics course, we will look at various methods of program analysis. To set the stage for this exploration, some time will be spent discussing issues of programming languages that can constrain the type of analysis that can be performed. The majority of the semester will be spent discussing various methods of points-to analysis and how they can be used by optimizing compilers. Other methods of program analysis will be presented as time permits.

Class Format: The first five classes will be run in a normal lecture type format. The subsequent lectures will be lead by students in the class with 2-3 students presenting during each class meeting. Each student should do two presentations during the course of the semester. All students are expected to read all of the papers as general discussions will be held during the last half hour or so of each class meeting.

Grading: The grade for this course will come primarily from the quality of the presentations you give (60%) and your general participation in class discussions (20%). Some form of open "notes" exam will be given during the final exam period to test how well you actually understood the material that was covered in class. The exam will constitute the remained (20%) of the course grade and is scheduled for 8:30am 12-15.


Date Topic Reading Presentation
9/4 Introduction   Lewis
9/11 Canceled Modula-3 type system Lewis
9/18 Programming Language Topics   Lewis
9/25 More PL topics, etc. Stroustrup Lewis
10/2 Data Flow Analysis and Stuff   Lewis
10/9 Flow Insensitive Points-To Analysis 1


Bartkowiak, Bauman
10/16 Flow Insensitive Points-To Analysis 2 Foster, Faehndrich, and Aiken Lioi, Siddiqui, Pinney
10/23 Flow and Context Sensitive Points-To Analysis 1 Emami and Hendren Lioi, Siddiqui, Bronn
10/30 Flow and Context Sensitive Points-To Analysis 2 Wilson and Lam Shrode, Martin
11/6 Using Points-To Analysis 1 Ghiya and Hendren Liggett, Bartkowiak
11/13 Using Points-To Analysis 2 Diwan, et al. von Rosenberg, Wallace, Martin
11/20 Shape Analysis Sagiv, et al. Pinney, Bronn, Bauman
11/27 Escape Analysis

Choi, et al.

von Rosenberg, Wallace
12/4 Symmetric Multithreading Tullsen, et al. Liggett, Shrode
12/11 Closing Discussion or other paper Hind Lewis

Interesting Links

C++ Language Definition
Modula-3 Language Definition
Java Language Definition
SML Tutorial
Alpha vs. IA-64
Paper on Covariance and Contravariance