CSSE 404: Compiler Construction
Rose-Hulman Institute of Technology
Computer Science and Software Engineering Department
Course catalog description
Theory and practice of programming language translation. Lexical
analysis, syntax analysis, parser generators, abstract syntax, symbol
tables, semantic analysis, intermediate languages, code generation,
code optimization, run-time storage management, error
handling. Students will construct a complete compiler for a small
- CSSE 232: Computer Architecture I (This course gives you an idea of how
low-level languages and machines work.)
- CSSE 304: Programming Language Concepts (This course gives you
experience with language processors and with writing a syntax-driven
- CSSE/MA474: Theory of Computation (This course introduces you to
FSMs, REs, CFGs, and PDAs which central to understanding compiler
Students who successfully complete this course should be able to:
- Implement a compiler for a common subset of language features.
- Explain instruction selection.
- Explain register allocation.
- Explain common control flow.
- Explain type checking.
- Explain garbage collection.
- Explain procedures and calling conventions.
- Explain dynamic typing
- Explain high-level optimization (inlining, constant folding, copy
- Explain raison d'etre of compilers and common high level
programming language constructs.
I plan to use the weighting scheme shown in the table below when
- Term project. A significant term programming project completed by
students working in pairs. Students implement a compiler for a
significant portion of Racket. A portion of the project will be driven
by individual teams.
- Mid-term exam.
- Project demonstration. A demonstration of the programming
project intended to demonstrate understanding of the implemented
- In-class presentation. A short (approx. 15 minute) presentation about
some language extension or compiler optimization.
- Paper presentation. Pairs of students will study and lead the
discussion of key papers related to compilers.
- Paper review. All students are expected to review the papers and
participate in class discussions. We will review about five papers.
- Quizzes. Short, in-class quizzes, about one a week.
- Assignments. Assignments designed to learn aspects of the materials.
| 55% || Project
| 15% || Exam
| 10% || Assignments/Quizzes
| 15% || Class presentations
| 5% || Class participation
Students who struggled in this class in the past largely did so
because they fell behind on the initial stages of the project. The
project is almost completely cummulative; failure to complete one
stage will prevent completion of subsequent stages. The late policy is
designed to encourage you to submit work on time, while still giving
credit for work completed somewhat late.
Your earned score on project milestones will be subject to the
| Time Handed In || Grade Multiplier
| On time || 100%
| < 24 hours late (1 day) || 90%
| < 36 hours late (1.5 days) || 80%
| < 48 hours late (2 days) || 70%
| < 72 hours late (3 days) || 50%
| < 96 hours late (4 days) || 25%
| ≥ 96 hours late (4 days) || 0%
Institute policy on academic misconduct states that:
"Rose-Hulman expects its students to be responsible adults
and to behave at all times with honor and integrity."
Exam and homework will be done on an individual basis. The simple rule of thumb for individual work is:
Never give or use someone else's code or written answers,
unless it is a team assignment and the person is on your team.
Such exchanges are definitely cheating and not cooperation. The
departmental statement on academic honesty has more detailed
Plagiarism or cheating will result in a grade of an "F" in the
course and they will also be report to the Dean of Students.