198:516 - Programming Languages and Compilers II
Spring 2006
Prof Barbara G. Ryder

Lecture Notes

Written Study Homeworks



April 19, 2006: I have edited the "results to report" section of Project 2 because of some typos that left the words "synchronization elimination" in the text in unfortunate places. Please reread to make sure you are collecting the correct metrics. April 14, 2006: There will be no class on Wednesday, April 19th or Monday, April 24th. We will have a double period class on Monday, April 17th to make up the first cancelled class, and on Monday, May 1st to make up the second cancelled class.
March 27, 2006: Please check the lecture notes page frequently; today I added to the notes from last Monday's lecture and posted the new notes on the lecture page.
March 22, 2006: The exam will be held on Monday, April 10, 2006.
February 21, 2006: Next Monday, February 27th, we will go over written homework #2 in class; come prepared to show your solutions to the problems.
February 15, 2006: Next Monday, February 20th, we will have an extended makeup class from 4:30pm-7:00pm. Class on Monday March 6, 2006 will be cancelled due to Prof Ryder's travel.
January 24, 2006: Prof Ryder's office hours will be on Thursdays from 4-6pm (or by arrangement). We will need to schedule makeup classes later in the term for February 6th and probably for March 24th.
January 18, 2006: The first class of CS516 will be held in Core A from 4:30-6:00pm.

Course Description

This term the course will concentrate on static and dynamic analyses and transformations for software tools and compilers for object-oriented languages. The goal is to cover a foundation of compiler technology: analyses, program representations, transformations, especially those which are applicable to tools such as test harnesses, profilers, change impact estimators, etc.

The course will emphasize both analyses and clients of those analyses. We will cover:

Course work

There will be one comprehensive examination near the end of the semester (probably in April) which will count 50% of the grade. During the semester, we will do 2 projects, the last one in teams of 2 students each. Both projects will be documented by a written report of findings. The second (and larger) of the projects will be presented to the class jointly by both team members at the end of the term. These projects will count for 50% of your grade. Specific project topics will be selected in consulation with the instructor.

In addition, there will be bi-weekly written homeworks which will be self-assessments with answers made available online, to make sure you grasp the material being presented. These homeworks will help prepare you for the exam.

Helpful Materials

Any advanced compiler text will cover the classical analysis problems and optimizations. The standard is
A.V. Aho, R. Sethi, and J.D. Ullman, Compilers: Principles, Technique and Tools, Addison-Wesley, 1986 (the red dragon book), or
A. Appel with Jens Palsberg, Modern Compiler Implementation in Java, 2nd Edition, 2002.

We also will read many research papers for course material including:
T.J. Marlowe and B.G. Ryder, Properties of Data Flow Frameworks, Acta Informatica, volume 28, 1990, pp 121-163. (a good overview of the mathematical framework properties which lead to eventual, and fast, convergence of fixed point iteration)

Administrative Details

Instructor: Barbara G. Ryder (ryder@cs.rutgers.edu)
Office: CoRE 311, 732-445-3699
Office hours: TBD

Class Meeting Time:Mon-Weds 4:30pm-6:00pm, Core A

PROLANGS Light Seminar on Current Research on Object-oriented Software Systems Thusdays,1:30-3:00pm, Core B

Useful Links