top of page

COMS 4115: Programming Language & Translators, Fall 2023



This class will discuss the 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: Tuesday and Thursday  11:40 am-12:55 pm
           Location: CSB 451
     Office Hours:  Thursday 3pm - 4pm (CEPSR 6LE1)

       Q&A Forum: Ed Discussion

                 Trivia: FAQ

Teaching Assistants.        



Submission Links


  • Programming Assignments: 50%     

  • Written Assignments: 10%

  • Midterm: 20%

  • Final: 20%

  • Extra Credit: 10%

Tentative Schedule

  • Week  1:  Tuesday, September 5th:    Trivia.                                       Thursday, September 7th:    Intro to Compiler

  • Week  2:  Tuesday, September 12th:  Lexical Analysis                       Thursday, September 14th:  Lexical Analysis (cont..)

  • Week  3:  Tuesday, September 19th:  Lexical Analysis (cont..)           Thursday, September 21st:  Syntactic Analysis

  • Week  4:  Tuesday, September 26th:  Syntactic Analysis (cont..)        Thursday, September 28th: Syntactic Analysis (cont..)

  • Week  5:  Tuesday, October 3rd:         Syntactic Analysis (cont..)        Thursday, October 5th:       No class

  • Week  6:  Tuesday, October 10th:       Syntactic Analysis (cont..)        Thursday, October 12th:      Semantic Analysis 

  • Week  7:  Tuesday, October 17th:       Midterm Review                       Thursday, October 19th:      Midterm

  • Week  8:  Tuesday, October 24th:       Control-Flow Analysis              Thursday, October 26th:      Control-Flow Analysis (cont..) 

  • Week  9:  Tuesday, October 31st:       Data-Flow Analysis                  Thursday, October 31st:      Runtime Environment

  • Week 10:  Tuesday, November 7th:    No class (Election Day)            Thursday, November 9th:    Code Generation

  • Week 11:  Tuesday, November 14th:   No class                                  Thursday, November 16th:  Code Generation

  • Week 12:  Tuesday, November 21st:   Optimization                             Thursday, November 23rd:  No class (Thanksgiving)       

  • Week 13:  Tuesday, November 28th:   Register Allocation                  Thursday, November 30th:  Final Review

  • Week 14:  Tuesday, December 5th:     Guest Lecture.                         Thursday, December 7th:    Final

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


  • 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.

bottom of page