Revise Computingrevisecomputing.co.uk
At a glanceFeaturesStudentsPricingHow it worksFree GCSE notesExam dates
At a glanceFeaturesStudentsPricingHow it worksFree GCSE notesExam dates

Knowledge organisers / Languages

Characteristics and purpose of different levels of programming language: High-level languages; Low-level languages

All topicsPractise exam questions
Knowledge organiser

Languages

2.5.1a

The differences between high- and low-level programming languages

What you need to know

Programming languages are divided into two levels: high-level languages (like Python, Java, C#) are designed to be readable by humans and are portable across different hardware. Low-level languages (assembly language and machine code) are closer to what the processor understands and give more direct control over hardware, but are harder to read and write.

Key points

  • Definition:Programming Language: a formal language used to write instructions that can be translated into machine code and executed by a computer.
  • HIGH-LEVEL: uses English-like keywords (e.g. print, while, if) and is easier/quicker to learn and write.
  • HIGH-LEVEL: PORTABLE — the same language can be used on computers with DIFFERENT hardware/processors.
  • HIGH-LEVEL: always needs to be translated into object code or machine code before execution.
  • HIGH-LEVEL: provides a higher level of abstraction — programmer doesn't have to deal with memory allocation or processor registers.
  • LOW-LEVEL: allows the user to directly manipulate memory and hardware.
  • LOW-LEVEL: specific to one type of processor — NOT portable.
  • LOW-LEVEL: does not need to be translated (machine code) / fast to translate (assembly). Faster execution.
  • LOW-LEVEL: code can be optimised, shorter, uses less memory. Can program for specific hardware.
  • LOW-LEVEL: requires programmer to understand the processor's registers and structure.
  • Machine code is pure binary (0s and 1s) that the processor executes directly.
  • Assembly language uses short mnemonics (e.g. ADD, MOV, LDA) and needs an assembler to translate.
  • Exam Tip:Common table question — 'same language on different hardware' = HIGH-LEVEL (portable). 'Directly manipulate memory' = LOW-LEVEL. 'English-like words' = HIGH-LEVEL. 'Always needs translating' = HIGH-LEVEL. 'Must be translated before processor can execute' = HIGH-LEVEL.
  • Exam Tip:When asked for REASONS to use low-level: direct hardware control, faster execution, optimised code, less memory. When asked for ADVANTAGES of high-level: easier to write, portable, higher abstraction.
  • Common Mistake:Portability is the most commonly wrong answer. HIGH-LEVEL is portable (write once, run anywhere). LOW-LEVEL is specific to one processor type.