Program Translation

All computer programs run on machine code that is executed directly on computer architecture.  Machine code is not easily read or programmed directly by humans.  Essentially, machine code is a long series of bits (i.e. ones and zeroes).  In order to program, humans write code in a language that is then translated in to machine code.  There are three basic approaches to program translation.


Assemblers

Assembly languages are more easily translated in to machine code than high-level programs languages.  Each assembly language statement directly corresponds to one or more machine instructions.  Another way to think about this is that assembly language code is simply an abbreviated form of machine code.  Thus, to transform a program from an asembly language to machine code all that must be done is that the instructions must be converted from their mneumonic abbreviations into their equivalent string of ones and zeroes.  This transformation process is known as assembling and is accomplished by an assembler.

For more information:


Compilers

A compiler is a computer program that converts an entire program written in a high-level language (called source code) and translates it into an executable form (called object code).

For more information:


Interpreters

An interpreter is a computer program that takes source code and converts each line in succession.  At each step it executes the high-level statement.  In other words, it doesn't have to examine the entire program before it can begin executing code.  Thus, programs that are interpreted lend themselve to interactive programming.  However, programs that are interpreted will generally run much slower than programs that are compiled.

For more information: