Pearson Edexcel · GCSE · Computer Science
Course version: 1CP2 · Version from Sept 2020
Understand the characteristics and purposes of low-level and high-level…
Full specification wording
Programming languages: 3.3.1 understand the characteristics and purposes of low-level and high-level programming languages
Low-level languages sit close to the hardware: machine code is binary instructions executed directly by the CPU, and assembly language uses mnemonics that map almost one-to-one onto machine…
Checked against the Pearson Edexcel 1CP2 specification (opens in a new tab) on .
- Point 1 of 2
- 4 key terms
Study notes
From the checked teaching notes for this specification point.
The idea
Low-level languages sit close to the hardware: machine code is binary instructions executed directly by the CPU, and assembly language uses mnemonics that map almost one-to-one onto machine instructions, needing an assembler to translate. They give precise control over registers and memory and can be very efficient, but they are hard to read, write and port between processor families. High-level languages such as Python or Java use readable statements, data structures and abstraction, so programs are quicker to develop, easier to maintain and usually portable, though a translator is needed and the code may use more memory. Purposes follow from this: low-level code suits device drivers, embedded firmware and time-critical routines; high-level code suits general application development where programmer productivity and clarity matter most.
What earns the marks
- Machine code is binary and executed directly by the processor, so it is the lowest level and needs no translation.
- Assembly language uses mnemonic codes and is translated by an assembler; it is low-level but more readable than machine code.
- Low-level languages give direct control of hardware, registers and memory, which supports drivers, firmware and time-critical routines.
- High-level languages use readable statements and abstractions, making programs faster to write, easier to debug and maintain.
- High-level code is generally portable across machines but must be translated by a compiler or interpreter before execution.
- The purpose of a language choice depends on the task: hardware control and efficiency favour low level, productivity and maintainability favour high level.
Common mistakes and how to put them right
Believing assembly language is a high-level language because it uses words.
Put it right: It is low-level, since each mnemonic corresponds closely to one machine instruction and an assembler translates it.
Thinking high-level code runs directly on the CPU.
Put it right: It must first be translated into machine code by a compiler or interpreter.
Assuming low-level always means faster in every case.
Put it right: Low-level code gives control and can be efficient, but a well-written high-level program may still meet the need, so the choice depends on the task.
Confusing portability with translation.
Put it right: Portability means the same source can be moved to another machine, not that no translation is required.
Exam tips
- Learn one clear contrast pair, such as machine code versus Python, and be ready to state a characteristic and a purpose for each.
- Link each characteristic to a purpose: direct hardware control suits drivers, while readability and maintainability suit large applications.
- Check the question wording for 'low-level' or 'high-level' before choosing, because distractors often swap the two sets of features.
Try the lesson
The start of the Programming languages: 3.3.1 understand the characteristics and purposes of low-level and high-level programming languages lesson, made from checked teaching notes for this specification point.
Have a go first
A programmer must write code that loads a value directly into a specific register of a particular processor and sets individual bits in a memory location. Which type of programming language is most suitable for this task?
Listen
Low-level languages sit close to the hardware: machine code is binary instructions executed directly by the CPU, and assembly language uses mnemonics that map almost one-to-one onto machine instructions, needing an assembler to translate. They give precise control over registers and memory and can be very efficient, but they are hard to read, write and port between processor families. High-level languages such as Python or Java use readable statements, data structures and abstraction, so programs are quicker to develop, easier to maintain and usually portable, though a translator is needed and the code may use more memory. Purposes follow from this: low-level code suits device drivers, embedded firmware and time-critical routines; high-level code suits general application development where programmer productivity and clarity matter most. A strong answer earns marks for these points. Machine code is binary and executed directly by the processor, so it is the lowest level and needs no translation. Assembly language uses mnemonic codes and is translated by an assembler; it is low-level but more readable than machine code. Low-level languages give direct control of hardware, registers and memory, which supports drivers, firmware and time-critical routines. High-level languages use readable statements and abstractions, making programs faster to write, easier to debug and maintain. Exam tip: Learn one clear contrast pair, such as machine code versus Python, and be ready to state a characteristic and a purpose for each.
See it
Key words
Say what each word means before you turn the card.
Machine code
Try answering aloud or in your head before turning the card.
Assembly language
Try answering aloud or in your head before turning the card.
High-level language
Try answering aloud or in your head before turning the card.
Portable
Try answering aloud or in your head before turning the card.
See every definition
- Machine code
- Binary instructions executed directly by the CPU, forming the lowest level of language and needing no translation.
- Assembly language
- Uses mnemonics that map almost one-to-one onto machine instructions and needs an assembler to translate it.
- High-level language
- Uses readable statements, data structures and abstraction, so programs are quicker to develop, easier to maintain and usually portable, though a translator is needed.
- Portable
- Describes high-level code that can generally be moved across machines, though it must still be translated before execution.
Label the diagram
Some boxes have lost their names. Pick the right name for each number.
1Box 1
2Box 2
3Box 3
There is more to this lesson
The full lesson goes on to check your understanding and help you earn the marks. Create a free account to carry on, with your progress saved.
A week of Premium from your first lesson · Then the free plan continues · No card, no charge
Test your understanding of Programming languages: 3.3.1 understand the characteristics and purposes of low-level and high-level programming languages
Active recall beats re-reading. Take an instant quiz now to test what you’ve learned and lock it into long-term memory.
A week of Premium from your first lesson · Then the free plan continues · No card, no charge