[<< wikibooks] A-level Computing 2009/AQA/Computer Components, The Stored Program Concept and the Internet/Fundamentals of Computer Systems/Types of program translator
== Assembler ==
An assembler translates assembly language into machine code. Assembly language consists of mnemonics for machine opcodes so assemblers perform a 1:1 translation from mnemonic to a direct instruction.  For example:
LDA #4 converts to 0001001000100100
Conversely, one instruction in a high level language will translate to one or more instructions at machine level.
Advantages of using an Assembler:

Disadvantages of using Assembler:

== Compiler ==
A Compiler is a computer program that translates code written in a high level language to a lower level language, object/machine code. The most common reason for translating source code is to create an executable program (converting from a high level language into machine language).  
Advantages of using a compiler

Disadvantages of using a compiler

== Interpreter ==
An interpreter program executes other programs directly, running through program code and executing it line-by-line. As it analyses every line, an interpreter is slower than running compiled code but it can take less time to interpret program code than to compile and then run it — this is very useful when prototyping and testing code.  Interpreters are written for multiple platforms, this means code written once can be run immediately on different systems without having to recompile for each.  Examples of this include flash based web programs that will run on your PC, MAC, games console and Mobile phone.
Advantages of using an Interpreter

Disadvantages of using an Interpreter