COSC 170 Compiler Construction

Spring 2007



Lectures:
MWF 2:00PM - 2:50PM Cudahy 412
Office Hours:
Course instructor
  Prof. Dennis Brylow   Mon 3:00PM - 4:00PM Cudahy 380
Mon 7:00PM - 8:00PM Cudahy 380
Wed 3:00PM - 4:00PM Cudahy 380
Fri 11:00AM - 12:00PM Cudahy 380
Fri 3:00PM - 4:00PM Cudahy 380

Textbook:
Modern Compiler Implementation in Java. Second Edition. Andrew W. Appel with Jens Palsberg. Cambridge.
We will be covering Chapters 1 through 12, the "Fundamentals of Compilation." The second half of the textbook consists of advanced topics more appropriate for a second, graduate-level compilers course.

Course Outcomes:
Upon completing this course, students will be able to:
  • Recognize various classes of grammars, languages, and automata, and employ these to solve common software problems.
  • Explain the major steps involved in compiling a high-level programming language down to a low-level target machine language;
  • Construct and use the major components of a modern compiler;
  • Work together effectively in teams on a substantial software implementation project.

  • Grading Policy:
    Projects 50%
    Homework 10%
    Exam #1 10%
    Exam #2 10%
    Exam #3 20%
  • Students must pass BOTH the exam portion of the grade AND and homework/project assignment portion of the grade to pass the course overall.
  • Assignments are to be completed individually, except when specifically noted otherwise. You may discuss course topics with your collegues, but written work and programmed code is not to be shared under any circumstances.
  • Academic dishonesty (claiming another person's work as your own) will not be tolerated. Infractions will result in immediate failure of the course, and referral to the Dean's office.
  • If you are not certain what constitutes fair play and what will be considered academic dishonesty, please ask the instructor.

  • Schedule:
    Week Topics Readings Demos Assignments
    01 Introduction Ch 1,2 Project 1 Interpreter
    02 Lexical Analysis, Automata Ch 3 Project 2 Scanner
    03 Syntax Analysis, Grammars Ch 3 Project 3 Parser
    04 Parser Generators Ch 4
    05 Abstract Syntax Trees Ch 5 Homework 1 Automata and Grammars
    06 Semantic Analysis Ch 6 Project 4 Semantic Analysis
    07 Activation Records Ch 7
    08 IR Translation Ch 8
    09 Basic Blocks Ch 9
    10 Instruction Selection Ch 10 Project 5 Translation
    11 Liveness Analysis Ch 11 Homework 2 Activation Records
    12 Register Allocation Ch 11
    13 Register Allocation Ch 12
    14 Advanced Topics
    15 Advanced Topics
    The instructor reserves the right to adjust this schedule as necessary.

    Back
    [Revised 2007 Jan 25 17:43 DWB]