Lectures
The purpose of the lectures is to give a gentle introduction to the different topics, as well as to cover most of the algorithms and techniques needed to solve the assignments. The complete slides will be available directly after the lectures. We strongly recommend that you attend the lectures in person, but you can also follow the lectures using Zoom using this link: https://kth-se.zoom.us/j/65449365266. Note that the lectures will not be recorded.
Videos
I will continuously add new videos related to this course in the following playlists:
- OCaml Tutorial. Links to an external site. This playlist contains five videos where I introduce the basics of the OCaml language. All videos consist of live coding and cover the content presented during lectures 2 and 3.
- Compilers and Programming Languages Links to an external site.. This playlist contains various videos about compilers. Many of the videos zoom into some specific topics of the lectures.
- Low-level Programming Links to an external site.. This playlist focuses on low-level programming in assembly and C. The videos primarily relevant for this course are the x86-64 assembly videos.
Lectures
Lecture Number |
Date, Time, and Place |
Lecture Title |
Module |
Slides |
LE1 |
October 31, |
Course Introduction |
Module 0: Getting Started |
|
LE2 |
October 31, |
Typed Functional Programming, Part I | Module 0: Getting Started |
|
LE3 |
November 1, |
Typed Functional Programming, Part II | Module 0: Getting Started | |
LE4 |
November 7, |
Lexical Analysis | Module 1: Lexical Analysis, Syntax Analysis, and Semantic Analysis |
|
LE5 |
November 7, |
Syntax Analysis | Module 1: Lexical Analysis, Syntax Analysis, and Semantic Analysis |
|
LE6 |
November 8, |
Semantic Analysis | Module 1: Lexical Analysis, Syntax Analysis, and Semantic Analysis |
|
LE7 |
November 21, |
Linkers, Loaders, and Assembly Programming | Module 2: Code Generation and Runtime Environments |
|
LE8 |
November 21, |
Intermediate Representations and Instruction Selection | Module 2: Code Generation and Runtime Environments | [slides Download slides] |
LE9 |
November 22, |
Garbage Collection and Managed Runtime Environments | Module 2: Code Generation and Runtime Environments |
|
LE10 |
December 1, |
Liveness Analysis and Register Allocation |
Module 3: Program Analysis and Optimizations |
|
LE11 |
December 2 |
Dominators and Loop Optimization |
Module 3: Program Analysis and Optimizations |
|
LE12 |
December 2, |
Static Single Assignment (SSA) | Module 3: Program Analysis and Optimizations |
|
LE13 |
December 16, |
Course Summary and Research Outlook |
[guest-lecture Download guest-lecture]
|