Programming Language Translators
Contents
Assembler
An assembler translates assembly language into machine code. One line of assembler will create a single line of machine code, because the assembler mnemonic is converted into the binary instruction.
Compiler
A compiler translates code written in a high level programming language into object code, the machine code of a particular machine. It 'compiles' the entire source code before translating it. The compiler has several advantages over interpreters, such as: the object code is saved, meaning there is no need to re-compile; compiled code executes faster than interpreted code; the object code can easily be distributed without the compiler; and compiled code is more secure, as it is harder to reverse engineer than interpreted code.
Interpreter
An interpreter also translates code written in a programming language into object code, but unlike a compiler it does this one line of code at a time. This makes it slower to run than a compiler, but interpreters are useful for partially testing or debugging programs.
Compiler vs Interpreter
Compiler over Interpreter Object code is saved, no need to re-compile Executes faster than interpreted code Object code can be distributed (without the compiler) Secure (object code not easily reverse engineered) Interpreter over Compiler Easier to partially test or debug programs Also an interpreter must interpret each time it passes through a loop