It's time for a new old language (2017) [pdf]
groups.csail.mit.edu
groups.csail.mit.edu
It has its own renderer, so you can take your code and render it for insertion into a paper. It uses Felleisen-style reduction syntax, which is useful because it exposes the current continuation of a program explicitly.
It's Time for a New Old Language – Guy Steele [video] - https://news.ycombinator.com/item?id=15473199 - Oct 2017 (45 comments)
At the same time I don't think it was a joke. So many CS papers are infested with excessive use of formalisms that makes the papers less accessible for no gain.
So it is more a matter of what an university decides to make available than being a CS.
So many abominations of data structure and protocol designs have come out of people not bothering to write down a grammar of any type until after they'd already come up with something broken.
(There's nothing new about that, it's been done before, other than perhaps the sick and twisted levels of abuse of the Ruby syntax I'm toying with thanks to a newish feature (refinements) to make it look closer to plain BNF).
And if course, automatically "compiling" bnf into parser combinators is easy.
term = term2 [op1 term]
term2 = term3 [op2 term2]
... and so on for every precedence level. A lot of BNF grammars for simpler languages are dominated by rules following that pattern.
Being able to recursively generate a rule-set where each level takes the head of a list is very useful.
(Links to publications of various types below his CV)