12 Jan 24
A thorough, approachable overview of jit dev.
18 Oct 23
14 Sep 23
In early 2015 I was honored to be invited to develop and present a graduate course on Virtual Machines at UC Berkeley. The result is CS294-113: Virtual Machines and Managed Runtimes, which was presented in the Fall of 2015.This page contains the materials from that course.
03 Jul 23
Where did WASM come from – what problems was it created to solve?How did WASM come to be developed and supported by multiple vendors, while the JVM remained single-vendor?Are WASM and the JVM really the same type of thing?What does “virtual machine” mean?
15 May 23
This post is an abridged adaptation of Simon Peyton Jones’ and David R. Lester’s book, “Implementing Functional Languages: a tutorial.”, itself a refinement of SPJ’s previous work, 1987’s “The Implementation of Functional Programming Languages”.
13 Apr 23
This post is an abridged adaptation of Simon Peyton Jones’ and David R. Lester’s book, “Implementing Functional Languages: a tutorial.”, itself a refinement of SPJ’s previous work, 1987’s “The Implementation of Functional Programming Languages”.
14 Mar 23
05 Mar 23
SICO is a Single Instruction COmputer that mimics the functionality of a normal computer while using only one computing instruction. This is like going into a forest with no tools and trying to build a house. Since we only have one instruction, most modern conveniences are gone. Things like multiplying numbers or memory allocation need to be built from scratch using SICO’s instruction.
24 Feb 23
In my opinion, the focus on minimalism is crucial for guaranteeing the longevity of both the VM itself and the software running on it. Exposing large, complex APIs to software running on the VM can become a liability. One of the biggest issue with modern web browsers, in my opinion, is that they’ve become so complex, it’s basically impossible to guarantee that your web app will behave the same on different browsers.
05 Jul 22
08 Jun 22
08 Jan 22
Instruction Encoding, aka Virtual Machines, Part 1