CS 781 Compiler Design and Construction II

  • Quarter : Winter, 2007
  • Class Hrs : Tu Th,  4:10pm to 5:25pm, 021 Millett Hall
  • Office Hrs : Tu Th, 3:30pm to 4pm, 5:30pm to 6pm, 395 Joshi Research Center/337 Russ Center (or by appt.)

  • Table of Contents

    1. Course Description
    2. Prerequisites
    3. Texts and References
    4. Relevant Websites
    5. Course Load and Grading
    6. Class Schedule, Syllabus, and Lectures
    7. Assignments and Exams
    8. Research Journals and Conferences 

    Course Description

    This course is a continuation of CS780 covering the theory and practice of compiler design. Topics emphasized are semantic analysis, code generation, and optimization.


    Required Text

    1. Compilers: Principles, Techniques, and Tools, Aho, Lam, Sethi and Ullman, Addison Wesley, 2007.ISBN-10: 0321486811


    1. The Compiler Design Handbook: Optimizations and Machine Code Generation, Y. N. Srikant and Priti Shankar, CRC Press, 2002. ISBN 084931240X
    2. Modern Compiler Implementation in Java, 2nd Ed., Andrew Appel, Cambridge University Press, 2002. ISBN 0-521-82060-X
    3. Compiler Construction: Principles and Practice, Kenneth C. Louden, PWS Publishing Company, 1997. ISBN 0-534-93972-4
    4. Advanced Compiler Design and Implementation, Steven Muchnick, Morgan Kaufmann, 1997. ISBN 1-558-60320-4.
    5. Building an Optimizing Compiler, Robert Morgan, Digital Press, 1998. ISBN 1- 55558- 179- X
    6. The C++ Programming Language, Third Edition and Special Edition, Bjarne Stroustrup, Addison Wesley, 1997. ISBN 0-201-88954-4 and 0-201-70073-5

    Relevant Websites

    Course Load

    The course load includes two programming assignments based on the  COOL compiler project worth 70 points, and an examination worth 30 points. Alternatively, depending on the number of registered students, a term paper with in-class presentation may replace the exams.   


    The letter grades will be assigned using the following scale: A[90-100], B[80-90), C[70-80), D[60-70), and F[0-60). However, I reserve the right to adjust the scale somewhat to utilize the gaps in the distribution. Academic dishonesty will be "rewarded" with a grade of "F". "Sharing/reuse" of solutions to assignment problems is strictly prohibited.

    Class Schedule, Syllabus and Lectures  

    Class 1 Overview of Semantic Analysis
    Class 2 Type Checking in Cool
    Class 3 (continue)
    Class 4 Run-time Environments
    Class 5  ( Extra Buffer Overflow Problem)
    Class 6 Code Generation for Cool
    Class 7 (continue)  (ExtraC++ Multiple Inheritance)
    Class 8 Operational Semantics of Cool 
    Class 9 (continue)
    Class 10 Intermediate Code
    Class 11 Local Optimization
    Class 12 Global Optimization
    Class 13 Examination (February 15)  
    Class 14 Register Allocation
    Class 15 (continue)
    Class 16 Instruction Scheduling
    Class 17 Control Flow Analysis : Revisited
    Class 18 Data Flow Analysis : Revisited
    Class 19 Optimization : Continued
    Class 20 Automatic Memory Management

    Final Exam (-)

    ASSIGNMENTS (Winter 2007) 



    T. K. Prasad