Interpreter: reads through & converts code to instructions one line at a time while it's running and sends it to the processor; if you have a code that changes frequently, it's better to use an interpreter because it has more flexibility; when you need to change a code using a compiler you have to shut the program down, implement the change, and then start