explain the difference between an interpreter and a compiler;