OCR · GCSE · Computer Science
Course version: J277 · Version from Sept 2022
Characteristics and purpose of different levels of programming language…
Full specification wording
Languages: Characteristics and purpose of different levels of programming language High-level languages Low-level languages
Programming languages sit on a spectrum from high-level to low-level.
Checked against the OCR J277 specification on .
- Point 1 of 3
- 4 key terms
Study notes
From the checked teaching notes for this specification point.
The idea
Programming languages sit on a spectrum from high-level to low-level. High-level languages such as Python or Java use English-like keywords, abstract away hardware details, and are portable across machines, which speeds up development and maintenance. Low-level languages are closer to the processor: machine code is binary instructions executed directly, while assembly language uses mnemonics and is specific to one instruction set. Low-level code can be very efficient and gives precise control over memory and registers, but it is harder to read, write and debug. The purpose of each level is to balance human productivity against machine control and performance.
For example: A web app is usually written in a high-level language, whereas a device driver or embedded routine may be written in assembly to meet timing or size constraints.
What earns the marks
- High-level languages use English-like keywords and abstractions such as variables, loops and functions, making programs easier for humans to read, write and maintain.
- High-level languages are generally portable because a translator or virtual machine adapts the same source code to different hardware, reducing the need to rewrite programs.
- Low-level languages are closely tied to a specific processor architecture and instruction set, so they are not portable between different machines without rewriting.
- Machine code consists of binary instructions that the CPU can execute directly, whereas assembly language uses mnemonics that must be translated into machine code.
- Low-level languages allow precise control over hardware resources such as registers and memory addresses, which can improve execution speed or reduce program size.
- The purpose of choosing a level is to trade human productivity and portability against machine control and performance for a given task.
Common mistakes and how to put them right
Saying that high-level languages are always faster than low-level languages.
Put it right: Low-level code can be more efficient because it maps closely to hardware, although modern compilers often optimise high-level code well.
Treating assembly language as portable across all processors.
Put it right: Assembly language is specific to one instruction set and must be rewritten for a different processor family.
Describing machine code as readable text.
Put it right: Machine code is binary and is executed directly by the CPU, while assembly language uses human-readable mnemonics.
Exam tips
- When comparing levels, refer explicitly to readability, portability, hardware control and performance rather than just saying one is easier.
- Use a named example such as Python for a high-level language and assembly for a low-level language to make your answer concrete.
- If asked for a purpose, link the level to a scenario such as rapid software development or embedded device control, and justify your choice.
Try the lesson
The start of the Languages: Characteristics and purpose of different levels of programming language High-level languages Low-level languages lesson, made from checked teaching notes for this specification point.
Have a go first
Which type of programming language is written using instructions that are close to the computer's own machine code?
Listen
Programming languages sit on a spectrum from high-level to low-level. High-level languages such as Python or Java use English-like keywords, abstract away hardware details, and are portable across machines, which speeds up development and maintenance. Low-level languages are closer to the processor: machine code is binary instructions executed directly, while assembly language uses mnemonics and is specific to one instruction set. Low-level code can be very efficient and gives precise control over memory and registers, but it is harder to read, write and debug. The purpose of each level is to balance human productivity against machine control and performance. For example, a web app is usually written in a high-level language, whereas a device driver or embedded routine may be written in assembly to meet timing or size constraints. A strong answer earns marks for these points. High-level languages use English-like keywords and abstractions such as variables, loops and functions, making programs easier for humans to read, write and maintain. High-level languages are generally portable because a translator or virtual machine adapts the same source code to different hardware, reducing the need to rewrite programs. Low-level languages are closely tied to a specific processor architecture and instruction set, so they are not portable between different machines without rewriting. Machine code consists of binary instructions that the CPU can execute directly, whereas assembly language uses mnemonics that must be translated into machine code. A common slip: saying that high-level languages are always faster than low-level languages. Instead, low-level code can be more efficient because it maps closely to hardware, although modern compilers often optimise high-level code well. Exam tip: When comparing levels, refer explicitly to readability, portability, hardware control and performance rather than just saying one is easier.
See it
Key words
Say what each word means before you turn the card.
Abstraction from hardware
Try answering aloud or in your head before turning the card.
Portability across platforms
Try answering aloud or in your head before turning the card.
Human readability and maintainability
Try answering aloud or in your head before turning the card.
Hardware control and performance
Try answering aloud or in your head before turning the card.
See every definition
- Abstraction from hardware
- High-level languages abstract away hardware details, which speeds up development and maintenance.
- Portability across platforms
- High-level languages are generally portable because a translator or virtual machine adapts the same source code to different hardware.
- Human readability and maintainability
- High-level languages use English-like keywords and abstractions such as variables, loops and functions, making programs easier for humans to read, write and maintain.
- Hardware control and performance
- Low-level languages allow precise control over hardware resources such as registers and memory addresses, which can improve execution speed or reduce program size.
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 Languages: Characteristics and purpose of different levels of programming language High-level languages Low-level 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