Step 1: Understand the question.
We need the tool that turns instructions written with symbols into machine code that the computer can run.
Step 2: What are symbolic instructions.
Assembly language uses short symbols, called mnemonics, like ADD, SUB, and MOV. These are easier for people to read than raw $0$ and $1$ codes.
Step 3: The machine code problem.
The computer understands only binary machine code. So the symbolic assembly lines must be translated before the CPU can use them.
Step 4: Role of the assembler.
An assembler is the special program that changes assembly language symbols into machine code, one to one. The very name links it to assembly.
Step 5: Rule out the others.
A compiler and an interpreter translate high level languages, not symbolic assembly. A linker only joins pieces of compiled code together.
Step 6: Conclude.
So the right answer is option 2, the assembler.
\[ \boxed{\text{Assembler}} \]