COMS 4115: Programming Language & Translators, Fall 2020
Description
This class will discuss principles of design and implementation of compilers. In particular, we will learn about different phases of a compiler including lexical analysis, syntactic and semantic analysis including type checking, code generation, and optimization. We will also study basic program analysis techniques required to perform compiler optimization.
​
Students will learn the materials by building new modules on top of an existing compiler (Clang/LLVM) in their programming assignments.
Details about the course materials can be found here.
​
Lecture Details
Instructor: Baishakhi Ray
Class Schedule: Monday and Wednesday 1:10 PM - 2:25 PM
Location: Online (Zoom Link will be posted in Coursework and Piazza)
Office Hours: Wednesday 2:30 pm - 3:30 pm /appointment
​
Q&A Forum: Piazza
Trivia: FAQ
Office Hours Location: Online (Zoom Link will be posted in Coursework and Piazza)
​
Teaching Assistants
-
Saikat Chakraborty (Zoom Office Hour: Mondays & Thursdays 11 AM-12:00 PM EST)
-
Aditya Sridhar (Zoom Office Hour: Tuesdays & Thursdays 4:30-5:30 PM EST)
Submission Links
-
Written Assignments : gradescope (Entry Code will be posted in Coursework and Piazza)
-
Programming Assignments : github classroom (Details will be posted in Coursework and Piazza)
-
In-class participations : PollEverywhere (Details will be posted in Coursework and Piazza)
​​
Grading
-
Programming Assignments: 40%
-
Written Assignments: 10%
-
Midterm: 25%
-
Final: 25%
-
Extra Credit: 10%
​
Tentative Schedule
​
​
​
​
​
​
​
​
​
​
Monday, September 14, 2020
Monday, September 21, 2020
Lexical Analysis (continues)
Wednesday, September 23, 2020
Lexical Analysis (continues)
Monday, September 28, 2020
Lexical Analysis (Continues)
LLVM/Clang
Wednesday, September 30, 2020
Prog2.1: Setup LLVM/Clang (due: 5th October)
Prog2.2 (due: 14th October)
Prog1 due
Wednesday, October 7, 2020
Syntactic Analysis (continued)
Monday, October 12, 2020
Syntactic Analysis (continued)
Wednesday, October 14, 2020
Syntactic Analysis (continued)
Prog2.2 due
Monday, October 19, 2020
Wednesday, October 21, 2020
Midterm Exam
Monday, October 26, 2020
Wednesday, October 28, 2020
Recitation
Monday, November 2, 2020
No Class
Wednesday, November 4, 2020
Semantic Analysis (continued)
Monday, November 9, 2020
Wednesday, November 11, 2020
Monday, November 16, 2020
Data-flow Analysis (continued)
Wednesday, November 18, 2020
Monday, November 23, 2020
Wednesday, November 25, 2020
No class
Monday, November 30, 2020
Wednesday, December 2, 2020
Monday, December 7, 2020
Wednesday, December 9, 2020
Final Exam
Upcoming Events
​
-
16th September: Programming assignment 1 released (due 30th September)
-
Programming assignment 0, which requires you to set up Git environment, is due next Wednesday (16th September).
​
Additional Reading Materials:
-
Compilers: Principles, Techniques, and Tools
By Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman.
2nd Edition, Addison-Wesley, 2006
-
Research Papers
Distributed by the instructor
Policies:
-
Late submissions: No late assignments will be accepted.
​​
-
Academic rules of conduct: Students are expected to adhere to the Academic Honesty policy of the Computer Science Department, this policy can be found in full here.
​​
-
Violations: Violation of any portion of these policies will result in a penalty to be assessed at the instructor's discretion. This may include receiving a zero grade for the assignment in question and a failing grade for the whole course, even for the first infraction.
​​
-
In order to receive disability-related academic accommodations for this course, students must first be registered with their school Disability Services (DS) office. Detailed information is available online for both the Columbia and Barnard registration processes. Refer to the appropriate website for information regarding deadlines, disability documentation requirements, and drop-in hours (Columbia)/intake session (Barnard). Students registered with the Columbia DS office can refer to the Master TARF section of the DS Testing Accommodations page for more information regarding disability-related academic accommodations for this course.
