Fall 2003:  CSC 255/455: Advanced Programming Systems             (Here for course web page)

Instructor: Prof. Chen Ding                 Office Hours: Fri. 11am- 12pm
Office: CSB 710      Phone: 275-1373      Email: cding@cs.rochester.edu

TA: Xipeng Shen                    Office Hours: Mon.+Wed. 10-11am
  Office: CSB  630       Phone: 275-2569     Email: xshen@cs.rochester.edu

Update:
             Nov.    6:    Optmizor Competition. See the project webpage. Click here for the current best results.
             Nov.  20:    Written Assignment I is posted below.
(due on Dec. 1st midnight)
            
Dec.    4:    Written Assignment II is posted below. (due on Dec. 11st midnight)
             Dec.    4:     The final ranking of compiler contest is posted. Click here.
             Dec.    4:     Secrete benchmarks for evaluation of compilers can be downloaded here.
             Dec.  11:     Final exam coverage is posted below.
             Dec.  17:     Phil Michalak and Maksim Orlovich's slides for the fiinal compiler are posted as the following links: Phil MichalakMaksim Orlovich.



Projects:   Optimizing Compiler   

Midterm:  Chapters 8, 9, and 10 in Cooper-Torczon book and Section 4.4 in Allen-Kennedy book.

Written Assignments:  

    Assignment I: (due on Dec. 1st midnight) This homework lets you practice the required material in Chapters/Sections 2, 3 (except 3.4), 5.1-5.5, 6.3, 7.2, 8.1-8.6, and 11.2.  Read the textbook carefully.  The answers may be in the book.

  1.   Exercise 2.5.
  2.   Let h(x,y)=ax-by, where a and b are real constants, x and y are real variables, L<= x, y <=U (L, U are real numbers and L<U ), and x<y.  Give and prove the tight upper-bound of h(x,y) .
  3.   Give an example loop nest where node splitting improves the fine-grain parallelism.
  4.   For a program of n statements, what is the maximal number of control dependences between statements?
  5.   Exercise 8.4.
   Assignment II: (due on Dec. 11st midnight) Question.  Lambda calculus.  Draw the syntax tree for the following lambda expression.  For call-by-value and call-by-name semantics, give the complete content of the environment at the time when subexpressions '(x a)' and '(+ a a)' are evaluated.  If an environment has more than one bindings, indicate the order in which they are searched for a particular name.  Give the result of the evaluation.

(
  (lambda (a)
     (
       (lambda(x) (
          (lambda (a) (x a))
          (+ 2 1)
          )
       )
       (lambda(y) (+ a a) )
     )
  )
  (+ 1 1)
)

Final Exam:  Allen&Kennedy book:  Chapters/sections 1, 2, 3.1-3.3, 5.1-5.5, 7.3, 8.1-8.4, 8.6, 11.2.1, 11.2.2.
                       Lambda calculus: LC syntax, binding, environment, closure, call-by-value and call-by-name semantics.