Study the complete source code for a self-hosting compiler that runs on and generates code for CP/M on the Z80. No prior knowledge in the field of compiler construction is required.
The reader should know at least one procedural programming language, such as C or Pascal, and at least one assembly language, ideally the one for the Z80 CPU. They should also know the basics of the CP/M operating system.