High-Level and Low-Level Languages
Understand High-Level and Low-Level Languages for GCSE Computer Science with this free worksheet and full mark scheme — Foundation and Higher exam-style questions with worked answers. Most programs are written in high-level languages, while machine code and assembly language are low-level.
Free downloads
These worksheets and mark schemes are original, written for Virtus Academy and checked against the current AQA specification. Every worksheet comes with a full mark scheme.
Topic overview
Programming languages are classified as high-level or low-level, and the difference determines how they are written and used.
A high-level language such as Python or Java is close to English, so it is quicker to write, easier to read and easier to debug. One statement usually translates into many machine code instructions. The same program can run on different types of processor once translated.
A low-level language is close to the hardware. Machine code is binary and executed directly. Assembly language uses short mnemonics such as ADD and LDA, with one statement usually corresponding to one machine code instruction. Low-level code is harder to write but allows direct control of hardware and can be more memory-efficient, which is why it is used in embedded systems and device drivers.
Revision notes
High-level languages
Close to English, so quicker to write, easier to read and easier to debug.
One statement usually translates into many machine code instructions. The same source code can run on different processor types once translated for each.
Low-level languages
Machine code is binary and executed directly by the processor.
Assembly language uses short mnemonics such as ADD, SUB and LDA. One assembly statement usually corresponds to one machine code instruction, and code is written for one specific processor type.
When low-level is used
It allows direct manipulation of hardware and can produce smaller, faster programs.
This matters in embedded systems with very limited memory, and in device drivers that must control hardware precisely. For most software the productivity of a high-level language wins.
Key points
- High-level languages are close to English.
- They are quicker to write and easier to debug.
- One statement becomes many machine instructions.
- Machine code is binary and runs directly.
- Assembly uses mnemonics such as ADD.
- Low-level code is processor-specific.
Worked examples
Example 1
State two advantages of a high-level language over a low-level language. [2 marks]
Working
Example 2
Explain why assembly language might be used for an embedded system. [2 marks]
Working
Example 3
State the relationship between one assembly statement and machine code. [1 mark]
Working
Common mistakes
Saying high-level languages run directly on hardware.
They must be translated into machine code first.
Confusing assembly with machine code.
Machine code is binary; assembly uses mnemonics.
Saying low-level languages are always better.
They are harder to write and processor-specific.
Forgetting portability as a high-level advantage.
The same source code works across processor types.
Exam tips
- Give both productivity and portability as high-level advantages.
- Distinguish assembly from machine code.
- Link low-level use to embedded systems and drivers.
- State the one-to-one assembly relationship.
Key terms
- High-level language
- A language close to English, requiring translation.
- Low-level language
- A language close to the hardware.
- Machine code
- Binary instructions executed directly.
- Assembly language
- A low-level language using mnemonics.
Related topics
Written and reviewed against the current AQA specification. Spotted an error? Let us know.