CSC 255/455 Advanced Programming Systems, Spring 2010

What's New
  • Course homepage posted(1/12)

Schedule and Handouts (useful for taking notes during class)NEW

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 code block, function, program, and behavior levels. Specific techniques for imperative languages include data flow, dependence, inter-procedural, and profiling analyses; resource allocation; and program transformation for locality and parallelism. Necessary parts of programming language theory are also covered, including basic lambda calculus and the correctness of program transformation.

Course projects include a program analyzer and optimizer based on Gcc for compiling a subset of the C programming language. Meets jointly with CSC 255, an undergraduate-level course whose requirement includes a subset of topics and a simpler version of the project.

This year a module will be added on languages and techniques for designing and analyzing parallel programs.

Instructor, office hours, and grading

Instructor: Chen Ding, Prof.

Teaching assistant: Bin Bao

Lectures: Mondays and Wednesdays, 2pm-3:15pm, CSB 601

Office hours: Ding, Fridays, 10am to 11am or by appointment, CSB Rm 710, x51373.
Bao, Mondays 10am to 11am, Thursdays 3pm to 4pm, or by appointment, CSB 631, x50469.

Grading (total 100%)
* midterm and final exams are 25% each
* the projects total to 40%
* written assignments are 10%

Textbooks and other resources

Optimizing Compilers for Modern Architectures (UR access through books24x7), Randy Allen and Ken Kennedy, Morgan Kaufmann Publishers, 2001. Chapters 1, 2, 3, 7, 8, 9, 10, 11. lecture notes from Ken Kennedy. The book will be available in the university book store. On-line Errata

Engineering a Compiler, Keith D. Cooper and Linda Torczon, Morgan Kaufmann Publishers. Chapters 1, 8, 9, 10 and 13. lecture notes and additional reading from Keith Cooper. The book will be available in the university book store. On-line Errata

The Little Schemer, Daniel Friedman and Matthias Felleisen, MIT Press. Auxiliary reading.
To play with lambda calculus, use the <nop>DrScheme environment.

Edit | Attach | Watch | Print version | History: r23 | r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r1 - 2010-01-13 - XiaoyaXiang
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding URCS? Send feedback