Course Description

This course covers advanced topics in programming language implementation, while aiming to be accessible to students from a broad background. Throughout the course, students will design and implement a range of programming languages tools and feature, following both classic and recent research papers on various topics.

Course Materials

Prerequisites

This course is intended for graduate students in computer science. There are no formal course prerequisites, but you are expected to have the kind of mathematical maturity typical of one who has taken an undergraduate discrete math or theory of computation course. It will be helpful to be familiar with basic typed functional programming. The course involves implementing various small programming languages, so students with background in programming language implementation, such as CPSC 311 and CPSC 411, will be very familiar with many of the data structure representations and implementation techniques required to implement a type system. However, we will cover the basic techniques and theory necessary to implement a language.

Structure

This course will involve lectures and discussions based on assign readings, with some in-class programming activities. Students will independently implement several multi-week projects implementing various programming language tools, such as type systems, compiler passes, optimizations, analyses, and transformations; and will present at least one of their project implementations for class discussion. Students should come to class prepared to discuss readings, ask questions, and work on in-class programming activities.

Students will receive a 0 on anything you submit that contains any plagarised materials; even a single sentence. Repeated violations will result in failing the course and referral to the university for disciplinary action. I suggest reading the following on plagarism. https://www.carolemieux.com/teaching/academic_honesty.html

Marks

Participation: 25%
Projects: 75%

Resources

To facilitate discussion among students in the class and myself, we are using the Piazza Q&A platform. The system allows you to ask questions, refine answers as a group, carry on followup discussions, and disseminate relevant information. Rather than emailing questions to me, I ask that you post your questions to Piazza.

Find our class page at http://piazza.com/ubc.ca/winterterm12026/cpsc511.

Course Schedule

My proposed topic list for this term is below, with some select papers on the topic. We will cover a subset of these papers in class.

The following is a draft course schedule, based on a prior offering of the course. The exact details (including some topics) will vary depending on the content covered in class and the interests and needs of the students (and myself).

Last updated: Fri, Feb 13 15:28
# Date Topics Reading Notes