COM W4115: Programming Language & Translators, Fall 2018

Lecture Details

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


Description

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.

Schedule
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

OCaml

Some Previous Projects

 
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