Niklaus Wirth's books on compiler design and structured programming are very didactic. Wirth is a great author to explain how things work. And I just discovered that one of the books I read and used a long time ago is now available for free on the Web: [Compiler design in C](https://holub.com/compiler/) from Allen Holub. There was a curses GUI to go step by step and understand parsing. Would be nice if Nim compiler showed its internals in a similar way... ;-)