CSC 255/455

Advanced Programming Systems

Fall 2002


Course project



Course description

With the increasing diversity and complexity of computers and their applications, the development of efficient, reliable software has become increasingly dependent on automatic support from compilers and other program analysis and translation tools. This course covers principal topics in understanding and transforming programs at the assembly, function, and program levels. Specific techniques for imperative languages include data flow, dependence, and inter-procedural analyses; resource allocation; and program transformation for locality and parallelism. The course will also touch on theoretical issues in program semantics for higher order languages.

Course projects include a program analyzer and optimizer for a subset of the C programming language. Meets jointly with CSC 455, a graduate-level course that requires additional readings and assignments.
 


Instructor, office hours, and grading

Instructor: Chen Ding, Prof.

Teaching assistant: Yutao (Julie) Zhong

Lectures: Tuesdays and Thursdays, 12:30pm to 13:45pm, CSB 601

Office hours:  Ding, Fridays, 11am to 12pm.  Zhong, Tuesdays and Thursdays, 2:30pm to 3:30pm.

Grading (total 100%)


 

Course schedule

 


Textbooks

Optimizing Compilers for Modern Architectures, Randy Allen and Ken Kennedy, Morgan Kaufmann Publishers, 2001.  Chapters 1, 2, 3, 7, 8, 9, 10, 11.  Available in the university book store.

Engineering a Compiler, Keith D. Cooper and Linda Torczon, to be published by Morgan Kaufmann.  Chapters 1, 8, 9, 10 and 13.  A preprint will be distributed in class.

The Lambda Calculus, revised edition, by H.P. Barendregt, Elsevier Science Publishers B.V., 1984.   Chapter 2 and 3.  Copies will be distributed in class.