CSCI 7135, Fall 2008
Program analysis

Click here if you are looking for a detailed schedule


Administrivia

Instructor: Amer Diwan
Office:  ECOT 520
Office hours: M 11:00 to 12:00, F 10:00 to 11:00, and by appointment
Class times:  MWF 3:00-3:50
Class location:  ECCR 133
Class web page: http://www.cs.colorado.edu/~diwan/7135-08


Goals and focus of the seminar

Program analyses are commonly used in compilers and programmer productivity tools.  They form the backbone behind performance enhancing transformations, bug finding tools, plagiarism detection tools, IDEs etc.  In this seminar we will get a deep understanding of the different types of program analyses and also get some experience with implementing these analyses.  The implementations will be customized to student needs;  e.g., if you have a research problem that can benefit from a program analysis, you can do that analysis as an implementation projects.

Each class will have assigned readings.  During class, the designated presenter will present the readings and all other students should come prepared to discuss the reading.  The presenter must meet with the instructor one day (or more) before the day of the presentation to discuss the presentation.  The presenter should bring a talk outline to this meeting. 

Students will also participate in implementations related to the topic of the course. 

The breakdown of points for the course is as follows: Presentation and class participation (50%),  implementations (50%).  In order to score high in the presentation and class participation component, students should give clear and focused presentations and participate regularly in class. 


Readings

Most of our readings will be from:

Principles of Program Analysis
Nielson, F., Nielson, H.R. (et al.), 2005, ISBN 978-3-540-65410-0

This book has two printings (but only one edition).  The second printing fixes a lot of errors in the first printing and also in a few cases replaces entire passages of the first book with clearer passages.  So please try to get the second printing.  I did not place an order with the book store for this book so please use amazon.com or your favorite online source to get it.

The book, while excellent, gives most of its examples from toy languages.  So we will also read recent research papers to see how the ideas in the book are being used to solve real problems for languages such as Java.


Format of talks

For your talk, you should plan a 30 minute presentation, leaving the rest of the class period for discussion. 

In your talk you should assume that everyone has done the reading.  So rather than presenting the reading in detail, focus on the difficult/interesting aspects of the reading.  It may be the case that in order to fully understand a reading you will need to do some independent reading.  Your talk should take the following format:

  1. Summary: This should summarize the key ideas in the reading
  2. Practicality/Usefulness: This should demonstrate an application of the ideas in the reading to a new problem (i.e., not covered in the reading itself)

Moodle

We will use moodle as the online-discussion forum and also for submitting assignments.  Please sign up on moodle.