An interpreter simulates a machine whose fetch-execute cycle deals with high-level program instructions. In this case there is no translation, the interpreter provides a virtual machine for the language. This is much easier to implement and debug but it has much slower execution.