A system program that converts and executes each instruction of a high-level language program into machine code as it runs, before going onto the next instruction