Racket's Language-Oriented Programming

Further on this… I double-checked with someone who actually uses Racket, and it turns out that my summary here is way off the mark. Racket’s ‘language-oriented programming’ is really just glorified macros, which like all macros output regular Racket code. You don’t need to write an interpreter at all, although if you really want to change the syntax you can do that by writing your own frontend.

So in a way it’s almost the opposite of Rebol dialects… those use the standard parser but nonstandard evaluation rules, whereas Racket’s languages are new frontends which produce ordinary Racket code.