A compiler is system software which converts programming language code into binary format in single steps. In other words compiler is a system software which can take input from other any programming language and convert it into lower level machine dependent language.
Note :“The Compiler is a translator which accepts the program written in high-level language and produces the corresponding machine language program (machine code).”
High-Level language -->Translator (compiler)-->Machine Code
An interpreter is a computer program that converts program statements into machine code. Program statements include source code, pre-compiled code, and scripts. Interpreter does not generate any intermediate code forms, reads the program line to line checking for errors, and runs the program simultaneously.
Assembler is a program for converting instructions written in low-level assembly code into relocatable machine code and generating along information for the loader. It generates instructions by evaluating the symbols in operation field and find the value of symbol and literals to produce machine code.