A programming language that is a vessel for experimenting with compilers and learning about their internals.