Typically a compiler inputs the the code and outputs the file in machine language. An interpreter will run the code on the fly from within the programming environment. You would normally use it to debug the program then compile to make a stand-alone file that doesn't require the programming environment to run.