Articles about the design and implementation of programming languages
Integrating garbage collection into a C application was almost too easy.
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 is an awesome language, but it has some annoying features that have caused endless frustration for me.
Some typecheckers understand dynamic type tests, thus avoiding downcasting.
Coroutines can either be stackless or stackful. The terminology is somewhat confusing.
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.