Articles about the design and implementation of programming languages

The Boehm GC Feels Like Cheating March 15th

Integrating garbage collection into a C application was almost too easy.

No More Primitives - What Python and Java Get Wrong March 14th

Many languages distinguish between primitives on the stack and objects on the heap. Others only have objects, and thus require primitives to aways be boxed. It turns out you can get the best of both worlds.

Lua Gotchas October 20th

Lua is an awesome language, but it has some annoying features that have caused endless frustration for me.

Unifying Dynamic Type Tests and Type Refinement September 3rd

Some typecheckers understand dynamic type tests, thus avoiding downcasting.

Stackless vs. Stackful Coroutines August 18th

Coroutines can either be stackless or stackful. The terminology is somewhat confusing.

Automatically Promoting Constructor Parameters to Fields March 30th

When writing object-oriented code, you frequently want a constructor that takes in values and assigns them to object fields. Some languages reduce the repetition required for this.