COMPSCI 410/610
Fall 2024
Compiler Techniques
Class overview
We explore basic problems in the translation of programming languages and examine common implementation techniques. The course is centered on the construction of a compiler for a substantial fragment of a realistic imperative programming language. Use of a computer is required.
Class meetings: TBD
Instructor: Hui Guan
Office Hour: TBD
Office Location: TBD
TA:
TBD
Prerequisites:
Cmp Sci 410: Cmp Sci 250 or Math 455 (for background in finite automata), and Cmp Sci 377 (for general knowledge of virtual address spaces and layouts), all with a grade of 'C' or better.
Cmp Sci 610: Open to Graduate Computer Science students only (others by permission of the instructor).
Senior Cmp Sci majors may take 610 for credit if prerequisites for Cmp Sci 410 are met, with permission of the instructor.
Credits: 3
Required Text:
Engineering a Compiler, Cooper and Torczon, Elsevier / Morgan-Kaufmann, ISBN 1-55860-698-X. The first edition is fine, and probably less expensive. Errata: Reported errors in the text may be found here.
Course Format
In addition to the lectures, there will be four homework assignments, five programming projects, an evening midterm examination, and a final examination. There may also be some small in-class writing assignments, and your general participation will be taken into account. The weighting of the formal components is expected to be: exams 32% (midterm 14%, final 18%), project 40% (8% for each phase), and homeworks 28% (7% for each homework).
Exams
Midterm exam. The midterm exam will be OPEN BOOK and OPEN NOTES, at an evening time and location indicated in the schedule. Please bring your textbooks!
Final exam. The final exam is likewise OPEN BOOK and OPEN NOTES. No electronics are allowed during exams.
Projects
The programming assignments will be distributed and collected through Moodle.
The compiler will be implemented in stages (see the schedule for timing), with each stage due at a particular time and the assignment for the next stage distributed then.
Some aspects of the project will be required for 610 but not 410.
The project will be done individually. While this requires more effort from each of you and is not as realistic as team organizations, it is fairer and ensures that you experience all parts of the project.
Statements
Accommodation Statement
The University of Massachusetts Amherst is committed to providing an equal educational opportunity for all students. If you have a documented physical, psychological, or learning disability on file with Disability Services (DS), you may be eligible for reasonable academic accommodations to help you succeed in this course. If you have a documented disability that requires an accommodation, please notify me within the first two weeks of the semester so that we may make appropriate arrangements.
Academic Honesty Statement
Since the integrity of the academic enterprise of any institution of higher education requires honesty in scholarship and research, academic honesty is required of all students at the University of Massachusetts Amherst. Academic dishonesty is prohibited in all programs of the University. Academic dishonesty includes but is not limited to: cheating, fabrication, plagiarism, and facilitating dishonesty. Appropriate sanctions may be imposed on any student who has committed an act of academic dishonesty. Instructors should take reasonable steps to address academic misconduct. Any person who has reason to believe that a student has committed academic dishonesty should bring such information to the attention of the appropriate course instructor as soon as possible. Instances of academic dishonesty not related to a specific course should be brought to the attention of the appropriate department Head or Chair. Since students are expected to be familiar with this policy and the commonly accepted standards of academic integrity, ignorance of such standards is not normally sufficient evidence of lack of intent (http://www.umass.edu/dean_students/codeofconduct/acadhonesty/ ).