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.
Schedule:
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 | 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