Software is divided into two main categories:
| Category | Description | Examples |
|---|---|---|
| System software | Manages and controls hardware; supports application software | Operating system, device drivers, utility software |
| Application software | Designed for end-users to complete specific tasks | Word 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.
Computers only understand machine code (binary: 0s and 1s). Programs written in higher-level languages must be translated before the CPU can execute them.
| Level | Language | Key features |
|---|---|---|
| Low-level | Machine code | Binary (0s and 1s). Directly executed by CPU. Fast. Not human-readable. |
| Low-level | Assembly language | Uses mnemonics (e.g. ADD, MOV, LDR). One instruction per machine code instruction. Harder to write but human-readable. |
| High-level | Python, Java, C++, etc. | English-like syntax. Portable across hardware. Easier to read/write and debug. Needs translation. |
Translators convert high-level or assembly code into machine code that the CPU can execute.
| Feature | Compiler | Interpreter |
|---|---|---|
| Translation | All at once | Line by line |
| Error reporting | All errors at end | Stops at first error |
| Speed of execution | Fast (pre-translated) | Slower (translates each run) |
| Output | Executable file | No permanent output file |
| Source code needed? | No (after compilation) | Yes (every time) |
| Debugging | Harder (fix, recompile) | Easier (stops immediately) |
| Examples | C, C++ | Python, JavaScript |
8 Edexcel-style questions · instantly marked
| Term | Definition |
|---|
Timed exam-style test.