top of page

COMS 4115: Programming Language & Translators, Spring 2023

compiler-linear-icon-modern-outline-logo

Description 

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: Monday and Wednesday 10:10 am-11:25 am
           Location: 833 Seeley W. Mudd Building
     Office Hours:  Monday noon-1 pm (CEPSR 6LE1)

​

                 Q&A Forum: Ed Discussion

                           Trivia: FAQ

​

Teaching Assistants.        

​

 

       

Submission Links

​​

Grading

  • Programming Assignments: 50%     

  • Written Assignments: 10%

  • Midterm: 20%

  • Final: 20%

  • Extra Credit: 10%

​

Tentative Schedule

​

​

​

​

​

​

​

​

​

​

Jan 18, 2023

 

 

Jan 23, 2023

 

    

Jan 25, 2023

Jan 30, 2023

  • Lexical Analysis (continues)

    

Feb 1, 2023

  • Lexical Analysis (continues)

  • written assignment1 released 

  • prog0 due (11:59pm ET)

Feb 6, 2023

  • No Class

Feb 8, 2023

  • No Class

  • prog1 assignment released

  • Written assignment1 due (11:59pm ET)

Feb 13, 2023

Feb 15, 2023

  

Feb 20, 2023

  • Syntactic Analysis (continued)

   written assignment2 released 

   

Feb 22, 2023

  • Syntactic Analysis (continued)

  • prog1 due (11:59pm ET)

Feb 27, 2023

   

Mar 1, 2023

  • Midterm Review

     written assignment2 due 

Mar 6, 2023

  • Midterm Exam

Mar 8, 2023

  

 prog2 released

Mar 13, 2023

  • Spring Break

     

  •   March 15: Prog2.1 due (11:59 ET)

Mar 20, 2023

   

  

Mar 22, 2023

  

Mar 27, 2023

  • prog3 assignment released

  • HW3 released (extra-credit)

 prog 2.2 due (11:59 ET)

Mar 29, 2023

  

  

Apr 3, 2023

    

   

Apr 5, 2023

 

   

Apr 10, 2023

  •   prog4 released

  • prog3 due (11:59pm)

Apr 12, 2023

  

Apr 17, 2023

  

Apr 19, 2023

  

  

Apr 24, 2023

  

  

Apr 26, 2023

  

  

May 1, 2023

  • Final Exam

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.

bottom of page