Computer Science GCES AQA
-
Representing Algorithms Aqa4 主题
-
Efficiency Of Algorithms Aqa1 主题
-
Searching Algorithms Aqa3 主题
-
Sorting Algorithms Aqa3 主题
-
Data Types Aqa1 主题
-
Programming Concepts Aqa5 主题
-
Arithmetic Relational And Boolean Operations Aqa1 主题
-
Data Structures Aqa3 主题
-
String Manipulation Aqa1 主题
-
Random Number Generation Aqa1 主题
-
Structured Programming Aqa2 主题
-
Robust And Secure Programming Aqa4 主题
-
Number Bases Aqa2 主题
-
Converting Between Number Bases Aqa3 主题
-
Units Of Information Aqa9 主题
-
Hardware And Software Aqa4 主题
-
Boolean Logic Aqa3 主题
-
Programming Languages And Translators Aqa2 主题
-
Cpu Architecture Performance And Embedded Systems Aqa4 主题
-
Memory Aqa2 主题
-
Secondary Storage Aqa3 主题
-
Fundamentals Of Computer Networks Aqa8 主题
-
Fundamentals Of Cyber Security Aqa1 主题
-
Methods Of Preventing Cyber Security Threats Aqa1 主题
-
Relational Databases Aqa2 主题
-
Ethical Legal And Environmental Impacts Aqa2 主题
Translators Aqa
Exam code:8525
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 type 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
Responses