On Sun, 2025-02-16 at 13:08 -0500, Paul Koning via cctalk wrote:
You might want to look at the GCC internals manual.
GCC has an
explicit layering, with front end processing steps that construct
parse trees which are then transformed in stages, until they reach
the "target" code which converts the final internal representation
into actual machine code.
The IBM 1401 FORTRAN II compiler consisted of 63 phases. It read the
program into core, then loaded phases that massaged what it had in core
until it eventually had machine code. It ran from a deck of about 2,500
cards, or from one tape. I have source code for it, and for a version I
revised for the Computer History Museum. I reverse engineered
operational tapes for two versions. Then the original author, Gary
Mokotoff, found listings he thought he had lost when he retired. I
transcribed his listings and assembled them. My code has more comments.