Translation Process (Cambridge (CIE) A Level Computer Science): Revision Note

Exam code: 9618

Robert Hampton

Written by: Robert Hampton

Reviewed by: James Woodhouse

Updated on

Interpreter execution

What is an interpreter?

  • An interpreter is a type of translator that executes high-level code line by line

  • It does not convert the entire program into a separate machine code file

How does it work?

  • The source code is read, analysed, and executed one line at a time

  • No complete machine code file is produced, only immediate execution happens

  • If there is an error in a line, execution stops, and the error is reported immediately

Feature

Explanation

No output file

It does not generate a standalone .exe or machine code file

Immediate execution

Runs the code as it is interpreted

Slower execution

Each line is translated every time the program runs

Useful for development

Good for testing and debugging during coding

Stops on first error

Detects and reports errors as they occur

Example use cases

  • Used in educational tools, like Python shells or BASIC interpreters

  • Helpful for rapid prototyping or when frequent changes are made

Compilation stages

What is compilation?

  • Compilation is a process that translates a program written in a high-level programming language into machine code

  • Only machine code can be executed by a computer

  • There are four stages involved in this process:

    • Lexical Analysis

    • Syntax Analysis

    • Code Generation

    • Optimisation

Lexical analysis

  • In A Level Computer Science, lexical analysis means studying the words or vocabulary of a language

  • This stage involves identifying lexical 'tokens' in the code

  • Tokens represent small meaningful units in the programming language, such as:

    • Keywords

      • var, const, function, for, while, if

    • Identifiers

      • Variable names, function names

    • Operators

      • '+', '++', '-', '*'

    • Separators

      • ',' ';', '{', '}', '(', ')'

  • During this stage, unnecessary elements like comments and whitespace are ignored

  • For example, if the following code is being compiled:

var x = function(x,y) {

if(x>2) {

return x*y;

}

return x+y;
}

  • The result of lexical analysis is a token table

 

Token

Type

1

var

Keyword

2

x

Identifier

3

=

Operator

4

function

Keyword

5

(

Separator

6

x

Identifier

7

,

Separators

8

y

Identifier

9

)

Separator

10

{

Separator

11

return

Keyword

12

x

Identifier

13

*

Operator

14

y

Identifier

15

;

Separator

16

}

Separator

Syntax analysis

  • Now that tokens have been identified, syntax analysis makes sure they all adhere to the syntax rules of the programming language

  • A symbol, e.g. '$' could be a valid token but not a valid character according to particular programming languages

  • The dollar symbol would be flagged as breaking the syntax rules

  • Other syntax errors programmers commonly make include mismatched parentheses or missing semicolons

  • If the code passes the syntax analysis, the compiler can create an Abstract Syntax Tree (AST)

  • An AST is a graph-based representation of the code being compiled

  • An AST is an efficient way to represent the code for the next step

Example abstract syntax tree

  • For the same code as above, the following abstract syntax tree can be created

Abstract syntax tree

Abstract syntax tree

Code generation

  • This step takes the AST and traverses it to generate object code that can be executed by the computer

Optimisation

  • This step modifies the code to make it more efficient without changing its functionality

  • This is important to attempt because it reduces the memory required to run the code, which leads to faster execution

  • A common optimisation action is removing duplicate code

  • If an 'add' function is written twice in the source code, a sophisticated compiler will notice this and include it only once in the object code

You've read 0 of your 5 free revision notes this week

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

Reviewer: James Woodhouse

Expertise: Computer Science & English Subject Lead

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.