I've always thought that this would be a better definition of what a "compiler" is vs what an "interpreter" is:
A compiler, if asked to "execute" itself a million times will generate code that is still reasonably fast.
An interpreter, if asked to "execute" itself a million times, will generate code that is a million times slower.