The best resource for any new/amateur compiler writer who doesn't want to deal with code-gen (and even for people who eventually do want to do code-gen) is Bob Noystrom's Crafting Interpreters:<p><a href="https://www.craftinginterpreters.com/" rel="nofollow">https://www.craftinginterpreters.com/</a><p>It is well paced, well illustrated, and demonstrates a very simple recursive descent parser, avoiding all the junk typically foisted on students.<p>I cannot recommend the book highly enough, I use it in my compilers class.
I unfortunately do not have a good reference of my own, but it strikes me that this list is missing resources for language design. This is the underdiscussed hard part of compiler writing. Good language design can also make compiler implementation much easier.
This looks great!<p>I'd also love to hear from people working on compilers - what are some real/fun/cool problems to work on for amateur compiler writers?<p>Suspect the obvious candidates are deep-learning, sql engines but those already get a lot of attention.