Translators (AQA GCSE Computer Science)

Revision Note

Test yourself

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 10 free revision notes

Unlock more, it's free!

Join the 100,000+ Students that ❤️ Save My Exams

the (exam) results speak for themselves:

Did this page help you?

Robert Hampton

Author: Robert Hampton

Expertise: Computer Science Content Creator

Rob has over 16 years' experience teaching Computer Science and ICT at KS3 & GCSE levels. Rob has demonstrated strong leadership as Head of Department since 2012 and previously supported teacher development as a Specialist Leader of Education, empowering departments to excel in Computer Science. Beyond his tech expertise, Robert embraces the virtual world as an avid gamer, conquering digital battlefields when he's not coding.

James Woodhouse

Author: James Woodhouse

Expertise: Computer Science

James graduated from the University of Sunderland with a degree in ICT and Computing education. He has over 14 years of experience both teaching and leading in Computer Science, specialising in teaching GCSE and A-level. James has held various leadership roles, including Head of Computer Science and coordinator positions for Key Stage 3 and Key Stage 4. James has a keen interest in networking security and technologies aimed at preventing security breaches.