Instructor: Baishakhi Ray
Class Schedule : Monday and Wednesday 1:10 PM -
2:25 PM at 703 Hamilton Hall
Office Hours: Wednesday 10:30 am - 11:30 am or by
appointment
Teaching Assistant: Lauren Arnett (lba2138
at columbia dot edu)
TA Office Hours: Monday 10 am - 12 pm at CSB 487
In this class, you will learn how compiler analyzes and optimizes programs. We will explore diverse program analysis techniques for imperative languages like C and Java. Some of the specific analysis techniques to be studied are program parsing, control and data dependency analysis, and pointer analysis. Such analysis has diverse applications ranging from compiler optimization to security vulnerability detection.
Homework and tests will cover these topics. You will design and implement compiler passes in a semester-long team project. While few of you will ever implement a full commercial compiler professionally, the concepts, techniques, and tools you will learn have broad application.
N.B. This section is different from Section-1. While Section-1 focuses more on language and compiler design, this section discusses different program analysis techniques.
Date | Topic | Reading | Due |
---|---|---|---|
Foundations | |||
Wed Sep 5 | Introduction | Trivia | |
Mon Sep 10 | Intro to Compiler | Intro, Ch1,2 | |
Wed Sep 12 | Intro to OCaml | ||
Mon Sep 17 | |||
Wed Sep 19 | |||
Mon Sep 24 | Lexical Analysis | Lexical | |
Wed Sep 26 | Project Proposal Due | ||
Mon Oct 1 | Syntactic Analysis | Parsing | |
Wed Oct 3 | |||
Mon Oct 8 | No Class | ||
Wed Oct 10 | Syntactic Analysis Continues | HW1 due | |
Mon Oct 15 | Midterm Review | ||
Wed Oct 17 | Midterm Exam | ||
Mon Oct 22 | Syntactic Analysis Continues | ||
Wed Oct 24 | HW2 due | ||
Mon Oct 29 | Semantic Analysis | Semantic Analysis | |
Wed Oct 31 | Runtime Environment | runtime | |
Mon Nov 5 | Election Day Holiday | ||
Wed Nov 7 | Code Generation | code_generation | Project: Language Reference & Parser |
Mon Nov 12 | Control-Flow Analysis | control_flow | |
Wed Nov 14 | No Class | ||
Mon Nov 19 | Data-Flow Analysis | data_flow | |
Wed Nov 21 | Thanksgiving Holiday | ||
Mon Nov 26 | Local Optimization and SSA | Local_Optimization | |
Wed Nov 28 | Global Optimization | global_optimization | Project: A simple demo |
Mon Dec 3 | |||
Wed Dec 5 | Register Allocation | register_allocation | HW3 due |
Mon Dec 10 | Final Exam | ||
Wed Dec 19 | Project Reports Due |