Translators (AQA GCSE Computer Science)
Revision Note
Written by: Robert Hampton
Reviewed by: James Woodhouse
Translators
What is a translator?
A translator is a program that translates program source code into machine code so that it can executed directly by a processor
Low-level languages such as assembly code are translated using an assembler
High-level languages such as Python are translated using a compiler or interpreter
What is an assembler?
An assembler translates mnemonics written in assembly language (low-level) in to machine code
Each lime of assembly language is assembled into a single machine code instruction
Assemblers have been used less and less since high-level languages were introduced
Advantages | Disadvantages |
---|---|
Speed of execution | Difficult to write due to limited and hard to understand commands |
Optimises the code | Changes mean it must be reassembled |
Original source code will not be seen | Designed solely for one specific processor |
What is a compiler?
A compiler translates high-level languages into machine code all in one go
Compilers translate inputs into machine code directly
Compilers are generally used when a program is finished and has been checked for syntax errors
Compiled code can be distributed (creates an executable) and run without the need for translation software
If compiled code contains any errors, after fixing, it will need re-compiling
Advantages | Disadvantages |
---|---|
Speed of execution | Can be memory intensive |
Optimises the code | Difficult to debug |
Original source code will not be seen | Changes mean it must be recompiled |
| It is designed solely for one specific processor |
What is an interpreter?
An interpreter translates high-level languages into machine code one line at a time
Each line is executed after translation and if any errors are found, the process stops
Interpreters do not generate machine code directly, appropriate machine code subroutines are called
Interpreters are generally used when a program is being written in the development stage
Interpreted code is more difficult to distribute as translation software is needed for it to run
Advantages | Disadvantages |
---|---|
Stops when it finds a specific syntax error in the code | Slower execution |
Easier to debug | Every time the program is run it has to be translated |
Require less RAM to process the code | Executed as is, no optimisation |
Worked Example
A computer program is written in a high-level programming language.
(a) State why the computer needs to translate the code before it is executed.[1]
(b) Either a compiler or an interpreter can translate the code. Describe two differences between how a compiler and an interpreter would translate the code.[2]
How to answer this question
(a) what time of language does a computer understand?
(b) the keyword is 'how'
Answer
(a)
To convert it to binary/machine code
The processor can only understand machine code
(b)
Compiler translates all the code in one go...
...whereas an interpreter translates one line at a time
Compiler creates an executable...
...whereas an interpreter does not/executes one line at a time
Compiler reports an error at the end...
...whereas an interpreter stops when it finds an error
Last updated:
You've read 0 of your 5 free revision notes this week
Sign up now. It’s free!
Did this page help you?