Skip to main content

Compilers Summer 2019

As Steve Yegge said, “If you don’t know how compilers work, then you don’t know how computers work.” This is a course for those who are interested in the design and implementation of programming languages. Compilers let us use a high-level programming language by translating programs into low-level machine code. Understanding how compilers work is essential if you want to be a good programmer. In this course, you will build a working compiler using lex, yacc and LLVM (it’s ok if you don’t know what those terms mean).


Time and place

  • Tuesdays 10:30-11:20 BLU-9660
  • Thursdays 09:30-11:20. Note: We continue to meet in SCK-9500
  • Last day of classes: Aug 2, 2019

Teaching Assistants

  • Do not email TAs directly. Use the discussion board only.
  • Vishal Batvia, vbatvia, Office hour: Wednesdays 5:30pm-6:30pm CSIL Labs ASB 9810
  • Pooya Moradi, pmoradi, Office hour: Tuesdays 5:30pm-6:30pm CSIL Labs ASB 9808



  • View Calendar
  • Subscribe
  • Subscribe to the URL in your calendaring app rather than saving the file and adding it manually.

Asking for help

  • Ask for help on the discussion board
  • Instructor office hours: Thursdays 11:30am-12:30pm TASC1 9427
  • TA office hours listed above
  • Do not email the TAs directly (without cc:ing the instructor) under any circumstance.
  • Use only SFU email address and use cmpt379: as subject prefix



  • Submit homework source code and check your grades on Coursys
  • Programming setup homework: HW0 due on May 21, 2019 (1%)
  • Four programming homeworks. Due dates: HW1 on Jun 4, 2019, HW2 on Jun 18, 2019, HW3 on Jul 9, 2019, HW4 on Jul 30, 2019 (56% total)
  • Participation: Helping other students on the discussion board in a positive way (5%)
  • In class midterm: Jun 25, 2019, 10:30-11:20am, Location: BLU 9660 (18%)
  • Final exam: Aug 9, 2019, 12-3pm, Location: EDB 7618 (20%)