Many languages have an underlying virtual machine (VM) to provide a more portable and convenient substrate for compilation or interpretation. For language research it’s useful to be able to generate custom VMs and other language tools for different languages. Which raises the question: what’s the appropriate language for writing experimental languages?