In my dabbling with compilers I’ve found Andrew Appel’s books [0] to be invaluable for understanding backend (after parsing) compiler algorithms. It’s a bit dated but covers SSA and other still-relevant optimizations and is pretty readable.
There are three versions (C, ML, and Java). The language isn’t all that important; the algorithms are described in pseudo-code.
I also find the traditional Dragon Book to be somewhat helpful, but you can mostly skip the parsing/frontend sections.
There are three versions (C, ML, and Java). The language isn’t all that important; the algorithms are described in pseudo-code.
I also find the traditional Dragon Book to be somewhat helpful, but you can mostly skip the parsing/frontend sections.
[0] https://www.cs.princeton.edu/~appel/modern/java/