CSCE 531: Compiler Construction (Spring 2007)

Prerequisites: CSCE 245 and either CSCE 330 or CSCE 350.

Instructor: Marco Valtorta
Office: Swaeringen 3A55, 777-4641
Office Hours: MWF, 1045-1145 or by previous appointment.
Teaching Assistant and Grader: Sen Xu,, Office: 300 Main A111 Office Hours: TTh 1325-1455 Phone 777-7506


Grading and Program Submission Policy

Reference materials:

  • Watt, David A. and Deryck F. Brown. Programming Language Processors in Java. Prentice-Hall, 2000 (required text). Supplementary materials from the author, including an errata list, are available.
  • Here are the
  • current departmental syllabus for CSCE 531, and the
  • old departmental syllabus for CSCI 531, which is provided for historical information.
  • Specific objectives of this course are:

    Beginning of course questionnaire

    Introductory lectures
    Notes on Denotational Semantics
    More Notes on Denotational Semantics
    Lecture notes for Chapter 1
    Lecture notes for Chapter 2
    Lecture notes for Chapter 3
    Lecture notes for Chapter 4
    Lecture notes for Chapter 5
    Lecture notes for Chapter 6
    Lecture notes for Chapter 7
    Lecture notes for Chapter 8
    Notes on Paul Graham's reconstruction of John McCarthy's 1960 Lisp interpreter

    Quizzes (In-Class Exercises)
    Quiz 1 of 07-01-19 (with answer)
    Quiz 2 of 07-01-24 (with answer)
    Quiz 4 of 07-04-02 (with answer)
    Quiz 5 of 07-04-04 (with answer)
    Quiz 6 of 07-04-06 (with answer)
    Quiz 7 of 07-04-09 (with answer)
    Quiz 8 of 07-04-11 (with answer)
    Quiz 9 of 07-04-13 (with answer)
    Quiz 10 of 07-04-16 (with answer)
    Quiz 11 of 07-04-18 (with answer)
    Quiz 12 of 07-04-20 (with answer)
    Quiz 13 of 07-04-23 (with answer)
    Quiz 14 of 07-04-25 (with answer)
    Quiz 15 of 07-04-27 (with answer)

    Old Test 1 with Correction Guide (in postscript format)
    Old Test 1 with Correction Guide (in pdf format)
    Test 2 from Fall 2001 (in postscript format)
    Test 2 from Fall 2001 (in pdf format)
    Topics for the Final
    Final exam from Fall 2001 (in pdf format)
    Final exam from Spring 2002 (in pdf format), with partial correction guide

    Homework and Projects Students
    See lecture log for a more complete list, which includes assignments for which no handout was given.
    Points per assignment.
    Programming Assignment 2: assigned March 9 and due March 21.
    Programming Assignment 3: assigned March 9 and due March 23.
    Programming Assignment 4: assigned March 23 and due April 2.
    Programming Assignment 5: assigned March 23 and due April 4.
    Term Project: assigned April 18 and due May 7.
    Some known Triangle compiler bugs.
    Grading policy and test cases for the term project.

    Programs A brief guide to the Triangle language processor.

    Lecture Log

    The USC Blackboard has a site for this course.

    Some useful links:
    John Backus's Obituary from the _New York Times_, 2007-03-20.
    Paper by Paul Graham on John McCarthy's original LISP interpreter.
    Paper by Paul Graham on John McCarthy's original LISP interpreter (pdf, local copy, one page per sheet, version of January 18, 2002)
    Local copy of the paper on the original LISP interpreter: postscript, two pages per sheet, version of May 1, 2002.
    How to use your cse email account.
    A site on decompilers. (It includes text of a dissertation. This pointer is provided to follow up on a question by a student in an earlier edition of the course.)
    Norman Matloff's Introduction to the vi Text editor
    Norman Matloff's Unix Tutorial Center