💻 Paper 1 · Topic 3: Software
3.3a Software Types & Translators
Edexcel 1CP2 · GCSE Computer Science · ~13 min read · ✅ Free
Notes
──
Video
──
Slides
──
Worksheet
──
Quiz

Types of Software

Software is divided into two main categories:

CategoryDescriptionExamples
System softwareManages and controls hardware; supports application softwareOperating system, device drivers, utility software
Application softwareDesigned for end-users to complete specific tasksWord processor, web browser, games, spreadsheet

Utility software is a subset of system software that performs specific maintenance/optimisation tasks: antivirus, disk defragmenter, compression software, backup software.

Programming Languages — Levels

Computers only understand machine code (binary: 0s and 1s). Programs written in higher-level languages must be translated before the CPU can execute them.

LevelLanguageKey features
Low-levelMachine codeBinary (0s and 1s). Directly executed by CPU. Fast. Not human-readable.
Low-levelAssembly languageUses mnemonics (e.g. ADD, MOV, LDR). One instruction per machine code instruction. Harder to write but human-readable.
High-levelPython, Java, C++, etc.English-like syntax. Portable across hardware. Easier to read/write and debug. Needs translation.

Translators

Translators convert high-level or assembly code into machine code that the CPU can execute.

1. Compiler

  • Translates the entire source code into machine code all at once
  • Creates an executable file (.exe) that can be run without the original source code
  • Reports all errors at the end of compilation
  • Faster execution (already translated)
  • Used by: C, C++, Java (to bytecode)

2. Interpreter

  • Translates and executes the source code line by line
  • Stops at the first error encountered (good for debugging)
  • Slower execution (translates every time it runs)
  • Source code needed each time
  • Used by: Python, JavaScript

3. Assembler

  • Converts assembly language into machine code
  • One assembly instruction → one machine code instruction (1-to-1 mapping)

Compiler vs Interpreter Comparison

FeatureCompilerInterpreter
TranslationAll at onceLine by line
Error reportingAll errors at endStops at first error
Speed of executionFast (pre-translated)Slower (translates each run)
OutputExecutable fileNo permanent output file
Source code needed?No (after compilation)Yes (every time)
DebuggingHarder (fix, recompile)Easier (stops immediately)
ExamplesC, C++Python, JavaScript
Exam tip: The compiler vs interpreter comparison is heavily tested. Key differences: compiler translates ALL at once (faster to run), interpreter translates LINE BY LINE (easier to debug). Also know: assemblers convert assembly to machine code.
⚠️ Common Mistakes
  • Saying interpreters are faster — compilers produce faster-running programs (already translated)
  • Confusing system software and application software — OS is system, Word processor is application
  • Saying a compiler stops at the first error — this is an interpreter; compilers list ALL errors
  • Forgetting that assembly language still needs an assembler to convert to machine code
Video coming soon
Click slide or press arrow keys to navigate
✍️

Worksheet — 3.3a Software Types & Translators

8 Edexcel-style questions · instantly marked

Q1State the difference between system software and application software.[2]
✅ Mark scheme
System software manages and controls computer hardware [1]; application software is designed for end users to perform specific tasks [1].
Q2Give two examples of utility software and state the purpose of each.[4]
✅ Mark scheme
Any two with purpose: Antivirus software [1] — detects and removes malware [1]; Disk defragmenter [1] — reorganises fragmented data to improve HDD access speed [1]; Backup software [1] — creates copies of files in case of data loss [1]; Compression software [1] — reduces file size to save storage space [1].
Q3Explain why high-level language programs need to be translated before they can be executed by the CPU.[2]
✅ Mark scheme
The CPU can only execute machine code (binary) [1]; high-level language code uses English-like syntax that the CPU cannot directly understand, so it must be translated into machine code first [1].
Q4Describe how a compiler translates source code.[3]
✅ Mark scheme
A compiler translates the entire source code at once [1]; it produces an executable file (machine code) [1]; all errors are reported after the full translation [1].
Q5State two advantages of using an interpreter over a compiler for a beginner programmer.[2]
✅ Mark scheme
Any two: interpreter stops at the first error, making it easier to identify and fix bugs [1]; no need to compile the whole program before testing [1]; easier to debug step by step [1].
Q6What is an assembler and what does it do?[2]
✅ Mark scheme
An assembler is a translator [1] that converts assembly language instructions into machine code (binary) [1].
Q7State one advantage of low-level languages over high-level languages.[1]
✅ Mark scheme
Any one: low-level languages run faster [1]; they give direct control over hardware/memory [1]; no translation needed for machine code [1].
Q8Compare compiled programs and interpreted programs in terms of execution speed. Explain why.[2]
✅ Mark scheme
Compiled programs run faster [1]; because they have already been translated into machine code before execution, so the CPU can run them directly without any translation overhead each time [1]. Interpreted programs are slower because they are translated line by line every time they run.
Topic Quiz
Q 1 of 15
You scored
out of 15
Click to reveal definition
🎉
Session complete!
TermDefinition
🎯

Mini Test — Software & Translators

Timed exam-style test.

← 3.2c Operating SystemsTopic 3Next: 3.3b Open Source →