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:
![](../../../../../I/m/B_plus.svg.png)
![](../../../../../I/m/B_plus.svg.png)
![](../../../../../I/m/B_plus.svg.png)
Disadvantages of using Assembler:
![](../../../../../I/m/B_minus.svg.png)
![](../../../../../I/m/B_minus.svg.png)
![](../../../../../I/m/B_minus.svg.png)
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
![](../../../../../I/m/B_plus.svg.png)
![](../../../../../I/m/B_plus.svg.png)
![](../../../../../I/m/B_plus.svg.png)
Disadvantages of using a compiler
![](../../../../../I/m/B_minus.svg.png)
![](../../../../../I/m/B_minus.svg.png)
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
![](../../../../../I/m/B_plus.svg.png)
![](../../../../../I/m/B_plus.svg.png)
![](../../../../../I/m/B_plus.svg.png)
Disadvantages of using an Interpreter
![](../../../../../I/m/B_minus.svg.png)
![](../../../../../I/m/B_minus.svg.png)
Types of program translator Name the three types of program translator and describe what level of language each translates Answer:
Why might you want to use a compiler instead of an interpreter? Answer: A compiler makes faster, more secure code Why might you want to use an interpreter instead of a compiler? Answer: Interpreters allow for code to run on multiple platforms, it allows you to debug and test code without having to re-compile the entire source code For a computer game running on a home console, would you use a compiler or an interpreter? Explain why. Answer: Compiler: as it produces faster code. Also object code that is produced is difficult to read, meaning competitors won't easily be able to steal or users hack the code. OR: Interpreter (harder to get marks for this): As more and more developers create games for multiple platforms, an interpreted language would allow for code written once to be run on different consoles and even phone platforms For a simple learning tool that will be released on the web for school children to use at home, what would be the best choice of translator? Explain why. Answer: Interpreter : Students will be using different operating systems and hardware at home, so it is necessary to create code that is multi-platform. As it is an educational tool, it probably wouldn't need the speed boost that a compiler would provide. |