Prof Wagner: CPS 218.
Compiler Construction – Overview
Office: D336, LSRC Bldg
Hours: MW 3:50-5, Thu 2-5, or by appt.
E-Mail: raw@cs.duke.edu
Introduction
- What is a Compiler?
- Types of Compiler
Course purpose and content
- Teach design and coding techniques for building a near-production quality compiler
- Problems consist of stages in actual construction of that compiler
- One, possibly 2 exams – grade primarily based on your compiler
- Your compiler will be the take-home final.
Texts
- Fischer, Charles N.: Crafting a Compiler (Primary text for course)
- Muchnik, Steven: Advanced Compiler Design and Implementation (Optional)
- Hanson, David: A Retargetable C Compiler (Design & Implementation of LCC Compiler) (Not required, but may be interesting)
Ground rules
- Work alone, and turn in only code you have written yourself, unless an exception to this policy is granted by me, explicitly.
- Your compiler is to be written in "efficient C". Avoid use of malloc(), multiplication, division, and floating-point operations. Use switches where they are faster. Use efficient algorithms. However, correctness is more important than efficiency, and so is completion of the project.
- Examples I present in class or make available for your use should NOT be assumed to be correct. It is your responsibility to understand them, and to modify them so they do what you want.
- Late programs: will be accepted for up to one week, but at a penalty of 3% per calendar day late. (The final project can’t be accepted after the date of the final).
Course Overview