CMPUT 680 - Machine Learning in Compiler Design

Overview

This is a newly redesigned offering of CMPUT 680 and is offered in combination with CMPUT 415 Compiler Design. The first part of the course covers the transformation of a program from source language to an intermediate code generation, which is called the front-end of a compiler. The second part of the course covers the design of optimization passes to improve the quality of the code generated.

Objectives

At the end of CMPUT 680 students are expected to be able to

  • Analyze solutions for the design of a front-end for a compiler
    • Includes creation of a grammar, contruction of a parser using a parser generator, manipulation of abstract-syntax trees, symbol tables, type checking, and error handling
  • Synthesize optimization passes for an existing compiler

This course focuses on learning-based optimization methods.

Course Work

  • Assignments
  • Research paper review
  • Exams
  • Project