An interpreter translates and executes a high-level program one statement at a time. It is used as an easy, if slightly inefficient, way of executing programs not in the machine code of the computer. For example, when an interpreted program contains a loop, the speed of execution will be slow because the analysis of each statement has to be repeated for each time round the loop.