I would turn to the Racket community first to learn about creating programming languages, they kind of have a thing for it.
Here's a start:
Here's a start:
It's an excellent free undergraduate-level PL textbook that covers a lot of ground and is informed by both research and practice. There's a 2nd edition linked from there as well.