CIS 341: Compilers - Spring 2022
Note
If you have recently registered for the course, please see the additional information on Piazza, and contact the course staff if you need help.
Course Information
Instructor
-
office hours: Mondays 4:00-5:00pm and by appointment, Levine 511
Teaching Assistants
Lef Ioannidis
office hours: Monday 12:30-1:30pm, Location: see Piazza
Stephen Mell
office hours: Wednesday 3:30-4:30pm, Location: see Piazza
Sumanth Shivshankar
office hours: Tuesday 4:30-5:30pm, Location: see Piazza
Coordinates
Time: Tuesday, Thursday 10:15 - 11:45am
Location: DRLB A4 (and virtually on Zoom, see the link on Piazza)
Contact: cis341@seas.upenn.edu
Homework Projects
HW1: Hellocaml!
Due: Wednesday, January 26th at 11:59pm
HW2: X86lite simulator
Due: Wednesday, February 9th at 11:59pm
HW3: LLVMlite backend
Due: Wednesday, February 23rd at 11:59pm
HW4: Oat language compiler v.1
Due: Wednesday, March 23rd at 11:59pm
HW5: Oat language compiler v.2
Due: Wednesday, April 13th at 11:59pm
HW6: Program Analysis & Optimizations
Due: Wednesday, April 27th 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