UNB/ CS/ David Bremner/ teaching/ cs4613/ CS4613 Lectures

On this page, you will find slides and other materials presented in class. Most of these slides were originally based on some lecture notes by Eli Barzilay. Over the years they have mutated in various ways, most recently with some cosmetic changes to follow the 3rd edition of PLAI a bit better.

Mistakes are probably mine.

You can browse the examples directly or by tags.

algebraic data type conditionals continuations copying lecture dynamic dispatch environments exceptions first class functions functions garbage collection generators hygiene inheritance interpreter let1 lexical scope local binding macro memory safety nominal type objects parsing gc2 plait recursion scheme smol stacker static-types stuctural type syntactic-continuations syntax-rules two-space type-calculator type-checker type inference types union type values web programming

Lecture 1: Introduction

Lecture 2: Parsing, Conditionals, Values

Lecture 3: local binding

Lecture 4: Functions

Lecture 5: macros

Lecture 6: objects

Lecture 7: more objects

Lecture 8: Static Typing

Lecture 9: types II

Lecture 10: type safety

Lecture 11: type safety

Lecture 12: type safety

Lecture 13: Algebraic and Union Types

Lecture 14: Structural and Nominal Types

env-question.dot

env.dot

Lecture 15: Generators and Continuations

Lecture 16: Web Programming and Continuations

Lecture 17: Continuation based intepreters

Lecture 18: Garbage Collection

Lecture 19: Reference counting and two-space collectors