Texts
Aho, Sethi, and Ullman, Compilers: Principles, Techniques, and
Tools, Addison-Wesley, 1986.
Levine, Mason, and Brown, Lex and Yacc, 2nd ed.,
O'Reilly & Associates, 1990.
Description
This is a 3-credit course on programming language
translation concentrating on compilers. The study of compiler construction
involves virtually every topic in computer science and students should expect
to be challenged by the material.
Prerequisites are CS 265, CS 310, CS 330 and Math 125. Students should know basic data structures, should have seen finite automata (finite state machines) and context-free grammars from CS 330, should be comfortable with assembly language programming, and should be able to program in C or C++. Topics include:
There will be a significant programming project in which students write a small interpreter and a compiler. Programming will be done in C or C++ and will use the tools lex and yacc or their equivalents.
Grading
In addition to the programming project there will be a midterm
and a final exam. Makeups on exams will not be given except for very good reason
(as judged by me) and only when arranged in advance. The course grade will be
computed from: