Instructor: Prof. Seth Fogarty
Email: sfogarty@trinity.edu
Office Hours: M: 2:30-5:30, Tu: 3:00-5:30, W: 2:30-3:30, Th: 2:00-5:30, or by appointment.
Office: CSI 270M
Meets: TuTh 12:45-2:00, CSI 488. 1 hour lab section TBD
Textbook: Engineering a Compiler, 2nd Edition by Keith D. Cooper & Linda Torczon
This is a systems course for computer science majors, designed for to introduce students to the practical issues that arise in compiling. Topics include parsing, syntactic analysis, intermediate representations, and the basics of code optimization.
Reasonable Solutions: Compilers frequently encounters NP-hard optimization problems that must be solved in low-order polynomial time. Algorithms must be correct in all cases and produce effective solutions.
Low-Level Programming: A great deal of computer science is about abstracting away the details of a system. By contrast, in this course students will solve difficult problems using basic programming constructs, in order to expose the underlying complexity of the solution. Similarly, by focusing on assembly code as an object language, students will confront the reality of performing computation.
Applications of Theory: Compilers demonstrate the application of theory to practical problems: automata, greedy algorithms, and graph theory all play a role.
Students are expected by abide the Trinity University Honor code. Discussion about the algorithmic components of the homework is allowed, but all code must be written individually. Further, the use of laptops, tablets, or cell phones during class is prohibited.
Students are expected to attend class regularly. Students who will miss class should contact me before their absence, and complete all homework assignments ahead of time.
In line with the Trinity University policy on equal access and equal opportunity, this course will be made accessible to all students. Any student who feels they may need accommodations based on the impact of a disability or long illness should contact me and the office of Disability Student Services to discuss your specific needs.
This course was heavily influenced by Dr. Cooper's course at Rice University.