The what, why, and how (and the hacks) Compilers and interpreters are the foundation of programming languages, the first tier in software abstraction. They come in all sizes, shapes, and colors, and they power all kinds of programming languages. For many of us they are black boxes. In the first section of this talk we’ll try to look into the box: how do compilers and interpreters actually work? After a bit of foundational information, we’ll look at a silly, simple virtual machine and JIT compiler built by yours truly. In the second part, we’re going to see how much trust we put into our compilers, and whether that’s always a good idea.