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

    A top-down flowchart. The top node 'Programming languages' branches into two nodes: 'High-level languages' and 'Low-level languages'. From 'High-level languages' four arrows lead to: 'English-like keywords and abstractions', 'Portable across machines', 'Easier to read, write and maintain', and 'Trade human productivity and portability'. From 'Low-level languages' five arrows lead to: 'Machine code: binary instructions executed directly', 'Assembly language: mnemonics translated into machine code', 'Specific to one instruction set', 'Precise control over registers and memory', and 'Trade machine control and performance'.
    This shows how programming languages split into high-level and low-level levels, with the characteristics and purpose of each.

    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.

    The diagram again, with 3 boxes numbered instead of named. A top-down flowchart. The top node 'Programming languages' branches into two nodes: 'High-level languages' and 'Low-level languages'. From 'High-level languages' four arrows lead to: 'English-like keywords and abstractions', 'Portable across machines', 'Easier to read, write and maintain', and 'Trade human productivity and portability'. From 'Low-level languages' five arrows lead to: 'Machine code: binary instructions executed directly', 'Assembly language: mnemonics translated into machine code', 'Specific to one instruction set', 'Precise control over registers and memory', and 'Trade machine control and performance'.
    • 1Box 1

    • 2Box 2

    • 3Box 3

    0 of 3 labelled

    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.

    Carry on with the full lesson

    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.

    Take topic quiz

    A week of Premium from your first lesson · Then the free plan continues · No card, no charge