A compilation process is described that emphasizes small object code rather than fast object code. The approach entails synthesizing an instruction set and an interpreter for that instruction set during compilation of an individual source program. Numerical results are given for compiling a systems programming subset of PL/I to System/370 code.