As a programmer, you have to understand that our programs go through these basic stages:
source code --> translator --> executable code
Source Code is the actual program that we write, may it be in C or C++ or Java, or in Visual Basic or something else. But since this is normally written in higher language, then, our computer/machine could not possibly understand this.
Translator can take two forms: compiler or interpreter. Syntax errors are then checked. If errors are found, you have to correct these in your source code and retranslate again.
Compiler like C is to translate your source code to machine code as one program so if your program is quite big, this may take time (but with the processor's speed now, this has become unnoticeable) while Interpreter translates your source code, line after line, so this makes your program easier to translate like what we do in Java.
Executable Code - the machine-translated code that makes us execute our code with out the environment of our programming language where we have written our source code. Should you have run-time or logical errors or the output you desire is not the one displayed, then you have to edit again your source code and redo the process.