Course Description

The material I present in this course is an introduction to modern implementations of programming language features. We will focus on languages that execute via managed runtime systems (i.e., garbage collected and dynamically interpreted/compiled languages) for high-level languages (e.g. Java, Python, Javascript), including their similarities and differences. In addition, we will investigate the the inner workings of the interpreter and just-in-time/dynamic compiler and how they can use information about the running program to optimize its execution.

If you are familiar with how VMs, JITs, runtime systems work internally, then you should not take this class. There are many other systems class alternatives that you can take in our department.



Class Times
Monday/Wednesday 9-10:50am
In-person: Phelps 2510
  • The course materials and Slack invite is available from this website and from the course gauchospace.
Chandra Krintz <>
Computer Science Department
Office Hours 2-3pm Tuesday's, starting week 3 via zoom (log into UCSB zoom first to access). Or by appointment (email <> to request one).