ICS 142

Compilers and Interpreters

Introduction to the theory of programming language processors. Study of compilers focuses on lexical analysis, syntax analysis, and compile-time mechanics including code generation and optimization. Study of interpreters focusing on execution of interpretive representations (such as postfix), on mechanics of interpretation, and on run-time management of data structures.

Assessment

Your grade will be assigned according to a curve of all total scores. Your score will be the sum of weighted scores: 6 quizzes (lowest one is dropped), 9 homework assignments (each worth one ninth of 30% and all count), and a comprehensive final exam worth 30%. Be sure to read my cheating policy here. It also discusses my policy on late homework and partial credit. All homework must be submitted by paper copy.

Late Homework and Making Up a Quiz

I do not accept late homework. You have a week to schedule your time so plan to finish early. If you run in to problems with a homework and you started early, you have a cushion to get help or to spend more time getting your program to work. If you don't get it done on time, you have only yourself to blame, so learn from this mistake and start earlier next time. There are plenty of homeworks to do. I do not offer a make-up for any quizzes. The reason I drop your lowest quiz is to allow for potential disasters like over-sleeping, getting a visa, automobile accident on the way to school, or grandparent passing away (all excuses I've actually heard!). If all goes well and you take all quizzes, then you will be fortunate to drop the one on which you made the most errors. If you miss the final exam, you get a course grade of NR which turns into an F after one term. There are no make-ups of the final exam.

Class Bboard

I do lots of teaching on the class bboard ics.142. Read it daily. Send me questions and I will reply to you and to the class bboard.

Course Related Links

Success Tips
C++ Coding Style Rules
Lecture Notes
Homework Assignments
Homework Starts

Text Book

  • Compilers: Principles, Techniques, and Tools by Aho, Sethi, and Ullman
    ISBN: 201100886
    Check out Compilers: ... at Amazon.com

    Topic and Reading Schedule

    Week Topic Compilers:...
    1 Introduction and Course Overview Chapter 1,2
    2 Lexical Analysis Chapter 3
    3 Syntax Analysis Chapter 4
    4 Translation and Type Checking Chapter 5, 6
    5 Run-Time Environments Chapter 7
    6 Intermediate Code Generation Chapter 8
    7 Code Optimization Chapter 9
    8 Code Generation Chapter 10
    9 Interpreters Lecture Notes
    10 Final Review

    Homework and Quiz Topic Schedule

    Wk 1 2 3 4 5 6 7 8 9 10 Finals
    Lec Intro Lexical Analysis Parsing Syntax Directed Translation Run-Time Environments Intermediate Code Generation Optimization Code Generation Interpreters Review
    HW Compiler Design & FSA Scanners Parsing & Writing Grammars Building Symbol Tables & Type Checking Assigning Variable Offsets Inter. Code Gen. Code Optimizer Code Generator Interpreter
    Qz Lexical Analysis Parsing Syntax Directed Definitions Memory Organization
    Type Checking
    Code Generation Intermediate Code Gen. Final Exam