[1] This is a theoretical statement. We are not claiming that the evaluator's data paths are a particularly convenient or efficient set of data paths for a general-purpose computer. For example, they are not very good for implementing high-performance floating-point calculations or calculations that intensively manipulate bit vectors.
[2] Actually, the machine that runs compiled code can be simpler than the interpreter machine, because we won't use the exp comp and unev registers. The interpreter used these to hold pieces of unevaluated expressions. components. With the compiler, however, these expressions components get built into the compiled code that the register machine will run. For the same reason, we don't need the machine operations that deal with expression component syntax. But compiled code will use a few additional machine operations (to represent compiled procedure function objects) that didn't appear in the explicit-control evaluator machine.
[3] Language implementations often delay the compilation of program parts even when they are assumed to be debugged, until there is enough evidence that compiling them would lead to an overall efficiency advantage. The evidence is obtained at run time by monitoring the number of times the program parts are being interpreted. This technique is called just-in-time compilation.
5.5  Compilation