INTERPRETER and ASSEMBLER
An interpreter is used to convert a program written in some high level language into a machine level language. This conversion is done simultaneously with the execution of program line by line. In case an error is found in any line, it is depicted and corrected at the same time. Interestingly, the program execution can not resume until the error is removed (or repaired). It is very important to notify that an interpreter must always be present in the memory every time the program is executed for resolving the errors. Interpreter does not create an executable object code file as it simply executes and converts each bit of machine code at a same time.
An assembler is used to convert the code (program) written in assembly language into a machine language code. An assembly language is called as a language of symbols which is not understandable by the computer system directly. So here arises the need of some translator in order to convert an assembly language program into object code which is executable by the machine (or computer system). An assembler is facilitated to the customer by the vendor of computer system.