Skip to main content

Compilers Fall 2020

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 on Zoom (link will be posted on the course discussion board).
  • Last day of classes: Dec 7, 2020

Teaching Assistants

  • Do not email TAs directly. Use the discussion board only.
  • Navid Rahimi, navidr, 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 board
  • TA office hours listed above
  • Use the discussion board 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

  • Submit homework source code and check your grades on Coursys
  • Programming setup homework: HW0 due on Sep 21, 2020 (1%)
  • Four programming homeworks. (56% total)
    • HW1 on Oct 5, 2020 [with grace days: Oct 7, 2020] (10%),
    • HW2 on Oct 19, 2020 [with grace days: Oct 21, 2020] (12%),
    • HW3 on Nov 2, 2020 [with grace days: Nov 9, 2020] (14%),
    • HW4 on Nov 23, 2020 [with grace days: Nov 30, 2020] (20%)
  • Participation: Helping other students on the discussion board 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 16, 2020 (practice quiz; no marks)
    • Quiz 1 on Sep 30, 2020
    • Quiz 2 on Oct 14, 2020
    • Quiz 3 on Oct 28, 2020
    • Quiz 4 on Nov 13, 2020
    • Quiz 5 on Dec 02, 2020
  • Final: Compiler Contest Dec 7, 2020 [with grace days: Dec 9, 2020] (20%)