Differences Between a Compiler and Translator

Definition of a Translator
Language translators convert programming source code into language that the computer processor understands. Programming source code has various structures and commands, but computer processors only understand machine language. Different types of translations must occur to turn programming source code into machine language, which is made up of bits of binary data. The three major types of language translators are compilers, assemblers, and interpreters.

Definition of a Compiler
A compiler is a type of language translator. It is a set of instructions(Software) that translates (compiles) source code written in a high-level language (e.g., C/C++, COBOL, C++) into a set of machine-language consisting of a string of 0s and 1s   instructions that can be understood by a   computer's CPU. Compilers are very large programs, with error-checking and other abilities. Some compilers translate high-level language into an intermediate assembly language, which is then translated (assembled) into machine code by an assembly program or assembler. Assembly language is a symbolic, non binary format for instructions (human-readable version of machine language) that allows mnemonic names to be used for instructions and data; for example, the instruction to add the number 39321 to the contents of register D1 in the central processing unit might be written as ADD#39321, D1 in assembly language, as opposed to a string of 0's and 1's in machine language. Other compilers generate machine language directly.
A utility known as a "linker" then combines all required machine language modules into an executable program that can run in the computer.

The following is a conceptual example of source code being converted to machine language by the compiler:
Source Code   Assembly Language   Machine Language
IF COUNT=10   Compare A to B     Compare 3477 2883
  GOTO DONE     If equal go to C   If = go to 23883
  ELSE         Go to D             Go to 23343
  GOTO...