Community resourceWorksheet

J277 2.5.1 High- and low-level languages

Part 1 of 4 · J277 2.5 · Programming languages and IDEs

What high-level and low-level actually describe, and why the difference matters to a programmer.

Students will:

  • define high-level and low-level languages
  • explain what the terms do and do not describe
  • give the characteristics of each level
  • explain why a high-level program must be translated
  • choose a suitable level for a stated purpose

Inside: 4 explanation cells, 2 multiple-choice questions, 1 fill-in-the-blanks cell and 4 written answers. 19 marks, about 45 minutes.

Series: J277 2.5 · Programming languages and IDEs, part 1 of 4.

Shared by Coding PathwayVerified teacher

  • 11 cells
  • About 45 minutes
  • CC BY-SA 4.0
  • Shared 17 Aug 2026
  • Updated 9 Sept 2026

Preview

The whole resource, exactly as a class sees it. Answers and marking are held back.

High- and low-level programming languages

A programming language gives a programmer a precise way to express instructions. The terms high-level and low-level describe how far the language is abstracted from the processor's machine code. They do not describe how difficult a course is or how skilled the programmer must be.

  • A high-level language uses instructions and structures that are more understandable to people and hides many hardware details. Python is a high-level language.
  • A low-level language is much closer to the instructions and hardware of a particular processor. Machine code and assembly language are low-level languages.

The CPU executes machine code. A high-level program must therefore be translated before its instructions can be executed.

Comparing the levels

CharacteristicHigh-level languageLow-level language
ReadabilityUsually easier for people to read, write and debugUsually harder for people to read and write
AbstractionHides many processor and memory detailsGives closer control of hardware and memory
PortabilityOften portable when a suitable translator exists for the target systemCommonly specific to a processor or processor family
TranslationNeeds translation before the CPU can execute itMachine code executes directly; assembly must be translated
DevelopmentComplex programs can usually be produced more quickly with powerful instructionsDevelopment generally requires more detailed hardware knowledge
Performance and resourcesTranslator and language abstractions may provide less direct controlCan allow compact, fast or carefully optimised code

These are tendencies, not promises about every program. A poorly written low-level program is not automatically faster than a well-written high-level one.

Fill in the blanks4 marks
Complete the summary. Python is a label 1 language. Machine code is a label 2 language and is executed directly by the label 3. High-level source code needs a label 4 before execution.
  • high-level
  • low-level
  • CPU
  • translator
  • editor
  • truth table
Multiple choice1 mark

Which statement best explains why Python programs can be portable?

  • APython source code is executed directly by every CPU
  • BSuitable Python translators are available for different types of processor
  • CPython contains only machine-code instructions
  • DThe same machine code works on every processor
Multiple choice1 mark

Which task is most likely to benefit from a low-level language?

  • ACreating a school questionnaire that must be developed quickly
  • BTeaching beginners to use selection and iteration
  • CWriting time-critical control code for a particular processor
  • DBuilding one program that should move easily between many processor types
Written answer4 marks

Explain two differences between a high-level language and a low-level language.

Make each point a direct comparison. Possible areas include readability, abstraction, portability and hardware control.

Students type their answer here.

Choosing a suitable level

An examination scenario normally contains clues. Match the requirement to a consequence:

  • rapid development and easier maintenance favour a high-level language because its instructions are easier to understand and express more work;
  • portability favours a high-level language when translators exist on the target platforms;
  • direct hardware control, small memory use or time-critical execution may favour a low-level language;
  • a specific known processor makes processor-dependent low-level code less of a disadvantage.

Naming a language level is only the first step. The marks usually come from linking its characteristic to the stated requirement.

Written answer3 marks

A charity wants a booking program developed quickly and maintained by several programmers. Recommend a language level and justify your choice.

State the level, give a relevant characteristic and link it to both development or maintenance.

Students type their answer here.

Written answer4 marks

A manufacturer is writing a small, time-critical controller for one known processor. Explain two reasons why a low-level language may be suitable.

Develop two separate chains from a characteristic to this controller.

Students type their answer here.

Written answer2 marks

Correct this statement: ‘Low-level languages are for beginners because they are lower difficulty.’

Explain what the word level actually refers to.

Students type their answer here.

Review

Retrieve one paired comparison for readability, abstraction, portability and hardware control. Then practise turning each comparison into a recommendation for a specific scenario.