Skip to main content

Compilers Fall 2021

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

  • Mon-Wed-Fri 09:30-10:20am PST in-person in room C9002.
  • Sometimes we might be on Zoom (link will be posted on the course discussion forum).
  • Last day of classes: Dec 7, 2021

Teaching Assistants

  • Do not email TAs directly. Use the discussion forum only.
  • Logan Born, loborn, Office hour: TBD on Zoom

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 Sep 20, 2021 (1%)
  • Four programming homeworks. (56% total)
    • HW1 on Oct 4, 2021 [with grace days: Oct 6, 2021] (10%),
    • HW2 on Oct 18, 2021 [with grace days: Oct 20, 2021] (12%),
    • HW3 on Nov 1, 2021 [with grace days: Nov 4, 2021] (14%),
    • HW4 on Nov 22, 2021 [with grace days: Nov 24, 2021] (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 Sep 15, 2021 (practice quiz; no marks)
    • Quiz 1 on Sep 29, 2021
    • Quiz 2 on Oct 13, 2021
    • Quiz 3 on Oct 27, 2021
    • Quiz 4 on Nov 12, 2021
    • Quiz 5 on Dec 01, 2021
  • Final: Compiler Contest Dec 6, 2021 [with grace days: Dec 8, 2021] (20%)