Bril is a cute intermediate language for teaching (think simplified LLVM IR): https://www.cs.cornell.edu/~asampson/blog/bril.html The idea of providing a standard JSON format to help students write basic passes is really elegant.