CIS 3410/7000: Compilers - Spring 2024¶
Attention
CIS 3410 has been re-numbered to CIS 4521 and will be cross-listed as the masters level course CIS 5521. Aside from the number change, the course content in future offerings will be similar to this version of the class. It will next be offered in Spring 2025.
Course Information¶
Instructor
-
office hours: Mondays 4:00-5:00pm and by appointment, Levine 511
Teaching Assistants
Manvi Agarwal
office hours: Wednesday 5:00-6:00pm, Location: see Ed
Nate Hoaglund
office hours: Wednesday 8:00-10:00am, Location: see Ed
Spyros Pavlatos
office hours: Monday 10-11:00am, Location: see Ed
Coordinates
Time: Tuesday, Thursday 10:15 - 11:45am
Location: FAGN 118
Contact: cis3410@seas.upenn.edu
Homework Projects¶
HW1: Hellocaml!
Due: Wednesday, January 31st at 11:59pm
HW2: X86lite simulator
Due: Wednesday, February 14th at 11:59pm
HW3: LLVMlite backend
Due: Wednesday, February 28rd at 11:59pm
HW4: Oat language compiler v.1
Due: Wednesday, March 27th at 11:59pm
HW5: Oat language compiler v.2
Due: Wednesday, April 17th at 11:59pm
HW6: Program Analysis & Optimizations
Due: Wednesday, May 1st at 11:59pm
Textbooks and Resources¶
There is no required textbook for this course. However, you may find the following references useful for digging deeper into course topics.
On Principles of Compiler Construction
Compilers: Principles, Techniques, and Tools (2nd Edition) by Aho, Lam, Sethi, and Ullman
Advanced Compiler Design and Implementation by Muchnick
Modern Compiler Implementation in ML by Appel
On Types and Type Systems
Types and Programming Languages by Pierce
Advanced Topics in Types and Programming Languages by Pierce et al.
On Program Analysis
Principles of Program Analysis by Nielson, Nielson, and Hankin
On OCaml
Introduction to Objective Caml by Jason Hickey
Real World OCaml by Yaron Minsky, Anil Madhavapeddy, and Jason Hickey