Teaching Programming Languages by Experimental and Adversarial Thinking: https://cs.brown.edu/~sk/Publications/Papers/Published/pkf-teach-pl-exp-adv-think/
A fascinating approach to teaching programming paradigms. Implement different language semantics in the same syntax, and ask students to write programs that distinguish between them!
Related Posts
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.
Blogging about my programming language project: choosing the basic syntax!
https://www.garden-lang.org/blog/syntax.html
I've added syntax highlighting to the prompt of my programming language!
It's not strictly necessary, but it's nice to have. It caught a bug with lexing incomplete string literals too.