Strachey's principle: the discipline that makes abstraction work

Christopher Strachey changed his mind about machine code sometime around 1965. He was building the General Purpose Macrogenerator (the GPM) at Cambridge to help write a compiler for the Combined Programming Language (a C precursor). The original plan was simple: mix machine code with macro calls where convenient. The GPM was designed to make this possible. He ended up abandoning the mix entirely. Instead, for the CPL compiler, all machine code would be incorporated as macro calls: even sections called only once, where defining a macro added no economy at all. It had started as a way to save effort, but it became a principle. ...

February 23, 2026 · 6 min · Bradley Fidler