CS 842 – Advanced Topics in Programming Languages

Course Info

  • Instructor: Ali Mashtizadeh
  • Discussion: Piazza
  • Email: mashti AT uwaterloo DOT ca (start subject line with CS842)
  • Lecture: Monday/Wednesday DC2568
  • Office Hours: DC 3552D, TBD

Grading (subject to change)

  • 25% Class Participation
  • 25% Paper Summaries/Presentations
  • 50% Project

Class Participation

Everyone is expected to read every paper and be prepared to discuss them in class.

Course Overview

The course will explore mostly recent papers that span the intersection between programming languages and systems. We will cover many topics from more language and runtime papers to papers than use PL to solve problems in operating system, networking and security. The group project will provide students with the opportunity to work on a small project in the area and conduct further investigation and problem solving on their own.


  • Undergraduate level understanding of operating systems.
  • Programming in C or other systems langauges

Course Readings and Presentations

A one page response to each paper is due in class or by email before the start of class. See the reading list page.

Students will present 2 (may drop to 1 depending on enrollment) papers from the reading list and lead the class discussion. You should cover the background material including the basic design, implementation, and evaluation of the system. A great presentation should lead directly to a discussion around the paper's design decisions, assumptions, and results. Students who present a third paper will have their lowest presentation grade dropped.

Course Project

  • Individual or group projects of 2 or 3 people.
  • Project paper will be due the last day of class.
  • Each group should present and demo their project.
  • Each group will need to submit a project proposal for approval

Academic Integrity

Students are generally not permitted to submit the same work for credit in multiple classes, e.g., do not present the same paper in multiple seminars.

Students are expected to follow the university policies.

Students with Disabilities

The Office for Persons with Disabilities (OPD), located in Needles Hall, Room 1132, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with the OPD at the beginnieach academic term.


This reading list will be in-flux, but we will start with next weeks papers.

Example Papers:

We can choose any papers from good venues in PL and systems.

Confirmed Schedule

Week Monday Wednesday
5/8—5/12 First Day An Incremental Path Towards a Safer OS Kernel
5/15—5/19 Theseus: an Experiment in Operating System Structure and State Management Singularity
5/22—5/26 Holiday seL4 Lecture
5/29—6/2 Safe to the Last Instruction GoJournal
6/5—6/9 DaisyNFS KCoFI
6/12—6/16 Effective Data-Race Detection for the Kernel Pool Alloc
6/19—6/23 Secure Virtual Architecture LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
6/26—6/30 MLIR: Scaling Compiler Infrastructure for Domain Specific Computation gpucc: An Open-Source GPGPU Compiler
7/3—7/7 Holiday TBD
7/10—7/14 HDTrans DynamoRio
7/17—7/21 Automatic Patching Type Checking Dynamic Languages
7/24—3/28 Shell Script Parallelization Presentations
7/31—8/4 Presentations No class


Week Monday Wednesday


See Piazza posts.