Skip to main content

Compilers Summer 2025

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

Instructor

Time and place

  • Mondays 12:30pm-2:20pm in WMC3520 and Wednesdays 12:30pm-1:20pm in C9002.
  • Last day of classes: Aug 8, 2025

Teaching Assistants

  • Do not email TAs directly. Use the discussion forum only.
  • Mahmoud Abumandour, mam47, Office hour: TBD
  • Sara Babaee Khanehsar, sba236, Office hour: TBD
  • Yuehao Hu, yha274@sfu.ca, Office hour: TBD

News

Calendar

  • 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 forum
  • TA office hours listed above
  • Use the discussion forum for all interaction with the instructor and TAs (except personal issues)
  • Do not email the TAs directly (without cc:ing the instructor) under any circumstance.
  • Use only SFU email address while sending emails and use cmpt379: as subject prefix

Textbook

Grading

  • All dates are still tentative
  • Submit homework source code and check your grades on Coursys
  • Programming setup homework: HW0 due on May 26, 2025 (1%)
  • Four programming homeworks. (56% total)
    • HW1 on Jun 9, 2025 [with grace days: Jun 11, 2025] (10%),
    • HW2 on Jun 23, 2025 [with grace days: Jun 25, 2025] (12%),
    • HW3 on Jul 14, 2025 [with grace days: Jul 16, 2025] (14%),
    • HW4 on Aug 4, 2025 [with grace days: Aug 6, 2025] (20%)
  • Participation: Helping other students on the discussion forum in a positive way (5%)
  • Online quiz performance. (18% total; Best 4 out of 5; Each quiz is worth 4.5%)
    • Quiz 0 on May 21, 2025 (practice quiz; no marks)
    • Quiz 1 on Jun 4, 2025
    • Quiz 2 on Jun 18, 2025
    • Quiz 3 on Jul 9, 2025
    • Quiz 4 on Jul 23, 2025
    • Quiz 5 on Aug 6, 2025
  • Final: Compiler Contest
    • Testcases due Aug 11, 2025 [with grace days: Aug 13, 2025] (2%)
    • Final submission due Aug 13, 2025 [with grace days: Aug 15, 2025] (20%)