Course Information
CS 423/623 Compiler Construction


  1. Time and Place:
    1:00 - 1:50, MWF -- SEM 261

  2. Course Personnel:
    Instructor: Dr. Frederick C. Harris, Jr.
    Office: SEM 239,
    Phone: 784-6571
    email: fredh@cs.unr.edu
    Office Hours: 10:00 - 10:50 MWF other times by appointment

  3. Prerequisite:
    CS 326 -- Programming Languages, Concepts, and Implementation
    Also the ability to program in C++ on a Unix system.

  4. Course Description:
    Introduction to compiler writing techniques, grammars for syntax definition, use of compiler writing tools, compilers for simple languages, case studies of actual compilers.

  5. Textbook:
    Introduction to Compiler Construction
    by Thomas W. Parsons. Computer Science Press.

  6. Written Assignments:
    Most weeks there will be a written assignment covering material presented in the lecture and the readings. The written assignments are to be completed individually. The written assignments are not weighted heavily; the purpose of the assignments is to give you practice with the theoretical material of the course. Spending time on the written assignments will pay off on the exams.
    Written assignments are due at the beginning of class on the date in the course schedule.

  7. Project:
    The course project consists of five programming assignments, Taken together, the five assignments form a complete implementation of the Mini-M compiler.

    Start the programming assignments early! Completing the course project is a large, complex, and rewarding task, which is made much easier by giving adequate forethought to design. The course schedule allows ample time to complete the assignments -- take advantage of it. The project components are assigned in roughly increasing order of size and difficulty; proportionately more time is allotted for the later assignments. Later assignments will be weighted more heavily in the final grade. Programs will be evaluated for correctness, organization, and documentation.

    Documentation and structuring should be incorporated into programs from the beginning. Neither the instructor, teaching assistants, or readers will help with incomprehensible programs.

    Programming assignments may be done individually or in teams of two. (The first programming assignment will be done individually, however.) Teamwork imposes burdens of communication and coordination, but has the benefits of more thoughtful designs and cleaner programs. Team programming is also the norm in the professional world.

    Every team (including teams of one) must be registered. To register a team, send mail to cs423 listing the names and complete email addresses of team members. Only one mail message per team is needed. Students on a team are expected to participate equally in the effort and to be thoroughly familiar with all aspects of the joint work. Both members bear full responsibility for the completion of the assignments. Partners turn in one solution for each programming assignment; each member receives the same grade for the assignment. Teams may not dissolve in the middle of an assignment

    Programming assignments are due at 11:59 on the date in the course schedule. Programming assignments will be turned in electronically; the exact method will be announced with the first assignment. All programming will be done in C++ on the SGI machines in the College of Engineering Computing Lab (Second Floor SEM) using your individual accounts.

  8. Late Policy:
    There is a 0.5% penalty for each hour, or partial hour, that a programming assignment is late. Late written assignments will receive no credit (but must be turned in).

  9. Examinations:
    There will be two midterm examinations and a final. The midterms will be held Wed Sept 29, and Fri Nov 5. The final for this class is scheduled for ????

  10. Grading:
    Your grade will depend upon your performance in the course -- there is no predetermined curve. It is impossible to pass the course without doing the programming assignments. The relative weight of the components of your grade will be approximately.


    Component Weight
    Written Assignments 10%
    Course Project 40%
    Midterm I 10%
    Midterm II 10%
    Final 25%
    Class Participation 5%

    Note: I will be using a +/- grading system.

  11. Disability Statement:
    If you have a disability for which you will need to request accommodations, please contact me or Mary Zabel at the Disability Resource Center (Thompson Student Services - 107), as soon as possible.