
Unwrapping intermediate representations
A look into the structure and abstract machines of intermediate languages, with examples in stack-based and register-based machines.

A look into the structure and abstract machines of intermediate languages, with examples in stack-based and register-based machines.

The form a compiler producers before it emits machine code or runs on a virtual machine

How a language can work with dynamic types and provide information about a type while the code is executed.

Read Update #1 Syntax Error I addressed two problems since last update: A bad error message, and an image loading error. The bad error

I’ve started a journey to make Leaf more visual. You may have seen some of my videos about complexity, complete with shaky mouse drawn

While writing some error handling helpers, during my algorithm stream, I encountered a defect. It’s a tricky one dealing with the passing of shared arguments

You’ve heard the term, you’ve probably even used them, but what exactly is a closure? It’s a combination of data and code that have become

Yesterday I finished a rather simple Kata from Codewars: the sum of a sequence of numbers. It was straight forward to implement, but I felt

Error handling is hard, and it’s made harder by a rich error hierarchy. Programs that successfully handle errors tend to have only a couple of

Finally, a big step for Leaf: something that could be called an actual program. Over the weekend I finished a program that loads a file,