Software
The difference between system and application software, what an operating system does, interrupts, programming languages, translators and IDEs.
📌 Key points
- System software manages the computer and provides a platform for other programs, e.g. the operating system and utility software (anti-virus, defragmentation, backup, compression); application software lets the user carry out tasks, e.g. a word processor, spreadsheet or web browser.
- Functions of an operating system: managing files, handling interrupts, providing a user interface, managing peripherals and drivers, managing memory, managing multitasking, providing a platform to run applications, providing security and managing user accounts.
- Software is layered: the hardware runs firmware (e.g. the bootloader stored in ROM), the firmware loads the operating system, and applications run on the operating system.
- An interrupt is a signal from a hardware device (e.g. a key press, printer out of paper) or software (e.g. division by zero) asking for the CPU's attention; the current task is paused, an interrupt service routine handles it, then the task resumes.
- High-level languages are close to English, easier to read, write and debug, and portable between different computers; one statement becomes many machine code instructions.
- Low-level languages are machine code (binary) and assembly language (mnemonics such as LDA, ADD); they are specific to one type of CPU but give direct control of hardware and can be very efficient. Assembly language is translated by an assembler.
- A compiler translates the whole program in one go into an executable file; errors are reported after translation, the program then runs without the compiler, and the source code does not need to be shared.
- An interpreter translates and runs the program one line at a time and stops at the first error, which helps debugging during development; the interpreter is needed every time the program runs.
- An IDE (integrated development environment) provides a code editor, a run-time environment, a translator, error diagnostics, auto-completion, auto-correction and prettyprint (colour-coding and indenting code).
📖 Key terms
- Operating system
- System software that manages the hardware and resources and provides a platform for applications.
- Utility software
- System software that maintains or protects the computer, e.g. anti-virus or defragmentation.
- Firmware
- Software stored permanently in ROM that controls hardware, such as the bootloader.
- Interrupt
- A signal sent to the CPU from hardware or software to say that something needs attention.
- Compiler
- Translates a whole high-level program into machine code at once, producing an executable file.
- Interpreter
- Translates and executes a high-level program one line at a time.
- Assembler
- Translates assembly language into machine code.
✏️ Worked example
A programmer uses an interpreter while writing a game, then a compiler when it is finished. Explain why.
- While writing, the interpreter runs the code line by line and stops at the first error.
- This shows exactly where the error is, so it can be fixed and the code re-run straight away.
- When finished, the compiler translates the whole program into an executable file.
- Users can run the executable without needing a translator, and it usually runs faster.
- The source code is not given away, so it cannot easily be copied or changed.
For "compare compiler and interpreter" questions, write matching pairs: "A compiler … whereas an interpreter …". Single facts about only one translator usually earn fewer marks.
Test yourself8 questions from a bank of 15. A new mix every time.
Start the quiz →