Software
Cambridge O Level Computer Science 2210 Topic 4 revision chapter covering types of software and interrupts (the difference between system software and application software with examples of each, the role and basic functions of an operating system including managing files, handling interrupts, providing an interface, managing peripherals and drivers, managing memory, managing multitasking, providing a platform for running applications, providing system security and managing user accounts, how hardware, firmware and an operating system are required to run application software, and the role and operation of interrupts including how an interrupt is generated, how it is handled using an interrupt service routine, what happens as a result, and hardware and software interrupt examples), and types of programming language, translators and integrated development environments (high-level and low-level languages with the advantages and disadvantages of each, assembly language as a low-level language that uses mnemonics and the assembler that translates it into machine code, the operation of a compiler and an interpreter including how each translates high-level language and how each reports errors, the advantages and disadvantages of a compiler and an interpreter, and the role of an IDE together with the common functions it provides).Show moreShow less
Core Revision Module
Revision & Practice Book
Interactive revision notes with exam tips and worked examples for this chapter.
Practice & Resources
2 toolsChapter overview
A summary of this Computer Science chapter — open a section to read it. The full notes, worked examples and practice questions are in the study modules above.
What is Software about?
A computer is built in layers, and each layer only works because the layer beneath it is already running. Hardware executes machine instructions and nothing else. Firmware, held in non-volatile memory, starts the hardware and its bootloader loads the operating system. The operating system then manages files, memory, peripherals, users and security, and provides the platform on which application software runs. While all of that is happening, interrupts let an urgent event — a key press, a division by zero — reach the CPU without it having to keep asking. And because a CPU can only execute machine code, every program a person writes must first be put through a translator: an assembler, a compiler or an interpreter.
Topic 4 is assessed in Paper 1: Computer Systems. Paper 1 is a written paper of 1 hour 45 minutes carrying 75 marks, made up of short-answer and structured questions set on Topics 1 to 6. All questions are compulsory, candidates answer on the question paper, the paper is externally assessed, and calculators are not permitted. Topic 4 contains no calculations at all, so what the paper is really testing here is different: your ability to describe a process in the right order and to compare two things against a stated context.
System software provides the services that the computer itself requires. It manages the hardware, keeps the machine usable, and provides the platform that other software runs on. The two categories the syllabus names are the operating system and utility software. System software is not written to do a job for the user; it is written to keep the computer in a state where a job can be done at all.
Application software provides the services that the user requires. It performs the tasks a person actually wants done — writing a letter, editing a photograph, keeping accounts, browsing the web, designing a part, playing a game. Application software cannot reach the hardware on its own: it depends on the system software beneath it, and requests every file, every allocation of memory and every use of a device through the operating system.
An operating system is system software that manages the computer's hardware and resources and provides a platform on which application software can run. It is not one job but nine, carried out at the same time and constantly interacting: managing files, handling interrupts, providing an interface, managing peripherals and drivers, managing memory, managing multitasking, providing a platform for running applications, providing system security, and managing user accounts. Every one of those functions exists because a shared machine with limited resources needs someone to be in charge of them.
Each of the nine functions below is stated as a definition, then unpacked into what the operating system actually does, then tied to a practical consequence — the thing a user would notice if that function stopped. That last link is what turns a memorised list into an answer that can survive an "explain" or a "suggest" command word.
Key ideas to remember
- Nine functions, one sentence to rehearse: Files, interrupts, interface, peripherals and drivers, memory, multitasking, platform, security, user accounts. Say it in that order until it is automatic — a question that asks for "four functions of an operating system" is then four seconds of work, not four minutes of hunting.
What you need to be able to do
- Describe the difference between system software and application software, and give examples of each.
- Describe the role of an operating system and its basic functions: managing files, handling interrupts, providing an interface, managing peripherals and drivers, managing memory, managing multitasking, providing a platform for running applications, providing system security and managing user accounts.
- Explain how hardware, firmware and an operating system are all required before application software can run, including that applications run on the operating system, the operating system runs on the firmware, and the bootloader in firmware runs on the hardware.
- Describe the role and operation of interrupts: how an interrupt is generated, how it is handled using an interrupt service routine, and what happens as a result.
- Give examples of hardware interrupts, including pressing a key on the keyboard and moving the mouse, and of software interrupts, including division by zero and two processes trying to access the same memory location.
- Explain what is meant by a high-level language and a low-level language, and give the advantages and disadvantages of each in terms of ease of reading and writing code, ease of debugging, machine independence and direct manipulation of hardware.
- Explain that assembly language is a form of low-level language that uses mnemonics, and that an assembler is needed to translate an assembly language program into machine code.
- Describe the operation of a compiler and of an interpreter, including how each translates high-level language and how each reports errors.
- Explain the advantages and disadvantages of a compiler and of an interpreter, including that an interpreter is mostly used while a program is being developed and a compiler is used to translate the final program.
- Explain the role of an integrated development environment in writing program code, and describe the common functions it provides: code editors, a run-time environment, translators, error diagnostics, auto-completion, auto-correction and prettyprint.
Key terms in Software
- Software Classification
- Software classification is the separation of programs into system software, which manages and runs the computer itself, and application software, which lets a user carry out a task unrelated to running the machine.
- Application Software
- Application software is software that provides the services the user requires, performing user-oriented tasks such as word processing, spreadsheets, databases, browsing, graphics, media and games. It runs on, and requests resources through, the operating system.
- Operating System
- An operating system is system software that manages the computer's hardware and resources and provides a platform on which application software can run. Its basic functions are managing files, handling interrupts, providing an interface, managing peripherals and drivers, managing memory, managing multitasking, providing a platform for running applications, providing system security and managing user accounts.
- System Software
- System software is software that provides the services the computer requires: it manages the hardware and provides the platform on which other software runs. It includes the operating system and utility software.
- Device Driver
- A device driver is software that allows the operating system to communicate with and control a particular hardware device, translating general operating-system instructions into the specific signals that device understands.
- Multitasking
- Multitasking is the operating-system function that allows more than one process to make progress at the same time by allocating processor time to each in turn, saving and restoring process state and switching between them rapidly so that they appear to run simultaneously.
- Firmware
- Firmware is low-level software held in non-volatile memory and closely associated with specific hardware. It provides the initial control of that hardware when the device is switched on, and includes the startup and bootloader instructions.
- Bootloader
- A bootloader is the part of the firmware that runs when a device is switched on. It performs the initial start-up tasks, locates the operating system, loads it into main memory and then transfers control to it.
- Interrupt
- An interrupt is a signal generated by hardware or software that tells the CPU an event has occurred which requires its attention, causing the CPU to pause the current program, run an interrupt service routine and then resume the interrupted program.
- Interrupt Service Routine
- An interrupt service routine is a specialised routine, held in memory, that is executed to service a particular interrupt. It performs the response the event requires, after which control returns to the interrupted process.
- Hardware and Software Interrupts
- Hardware and software interrupts are the two sources an interrupt can come from: a hardware interrupt is raised by a device such as a keyboard, printer or disk drive, while a software interrupt is raised by a running program, for example on a division by zero or two processes trying to access the same memory location.
- Low-Level Language
- A low-level language is a programming language close to the processor's machine instructions. It includes machine code and assembly language, is machine-dependent and harder for people to read, write and debug, but allows direct manipulation of hardware such as registers and memory locations.
- High-Level Language
- A high-level language is a programming language that uses instructions closer to human language than to the processor's instruction set. It is easier to read, write and debug and is generally machine-independent, but it must be translated into machine code and gives less direct control of hardware than a low-level language.
- Assembler
- An assembler is a translator that converts an assembly language program into machine code, replacing each mnemonic with the binary instruction from the processor's instruction set that it stands for.
- Language Level Selection
- Language level selection is the justified choice between a high-level and a low-level language for a stated situation, argued on ease of writing and reading code, ease of debugging, machine independence and the need to manipulate hardware directly.
- Interpreter
- An interpreter is a translator that translates and executes a high-level language program line by line. It stops execution when it finds an error and reports it at that statement, and it produces no executable file, so the source code must be translated again each time the program runs.
- Assembly Language
- Assembly language is a form of low-level language that uses mnemonics instead of binary machine-code patterns. Each instruction corresponds closely to one machine operation, registers and memory locations may be referred to explicitly, and it remains specific to one type of processor.
- Compiler
- A compiler is a translator that converts the whole of a high-level language program into machine code at once, before execution, producing an executable file. If errors are detected it produces an error report for the whole code.
- Integrated Development Environment
- An integrated development environment is software that combines the tools needed to develop programs into one application, commonly providing a code editor, a run-time environment, translators, error diagnostics, auto-completion, auto-correction and prettyprint.
- Machine Code
- Machine code consists of binary instructions from a processor's own instruction set that the CPU can execute directly. It is machine-dependent, because each type of processor has its own instruction set.
Common mistakes to avoid
- 1. Inverting the stack. Why it fails Writing that "the operating system loads the firmware" or "the operating system starts first" reverses the only ordering the syllabus states. Firmware is already present in non-volatile memory when the power arrives; the operating system is a file on secondary storage that something has to fetch. Fix Rehearse the order upward: hardware → bootloader in firmware → operating system → applications. See section 4.1 E.
- 2. Defining application software as "software the user installs". Why it fails A user can install anti-malware, a compression tool or a device driver — all system software. A manufacturer can pre-install a browser and a media player — both application software. Who installed it is irrelevant. Fix Ask what the software is for. Services the computer requires, or services the user requires? See section 4.1 C.
- 3. Saying an interrupt "stops" or "closes" the program. Why it fails The whole point of saving the state is that the interrupted program is resumed. If interrupts ended programs, moving the mouse would close your work. Fix Always finish the sequence with "the state is restored and the program continues from the point at which it was interrupted." See the interrupt laboratory.
- 4. Swapping the two interrupt types. Why it fails The syllabus names the examples explicitly. A key press and a mouse movement are hardware interrupts because a physical device raised them. Division by zero, and two processes trying to access the same memory location, are software interrupts because a running program caused them. Fix Ask "did a physical device raise this, or did a running program?" See section 4.1 G.
- 5. Describing multitasking as literal simultaneity. Why it fails On a single processor core, only one instruction is executed at a time. The operating system allocates processor time to each process in turn and switches between them so quickly that they appear to run at the same time. Fix Use the words "allocates processor time", "saves and restores state" and "appears simultaneous". See OS function 6.
- 6. Making the compiler line-by-line, or the interpreter whole-program. Why it fails These are exactly the wrong way round, and swapping them makes every other difference in 4.2 come out backwards too. A compiler translates the whole code before it is executed and produces an executable file. An interpreter translates and executes line by line and stops when it meets an error. Fix Memorise the pair as a single sentence, in that order, and never write one without the other. See the translator laboratory.
- 7. Treating assembly language as machine code. Why it fails Assembly language uses mnemonics such as LOAD and ADD. A CPU cannot execute a mnemonic. An assembler is needed to translate assembly language into machine code. Fix "Assembly language is written for people to read; machine code is what the processor executes." See section 4.2 D.
- 8. Believing an IDE fixes your program. Why it fails Auto-completion suggests identifiers, auto-correction repairs recognised simple mistakes, error diagnostics report syntax and translation errors, and prettyprint formats the layout. None of them can tell that your algorithm computes the wrong answer. Fix Separate syntax from logic in every IDE answer. See the IDE laboratory.
- "Firmware and the operating system are the same thing." Correct model They are different software with different jobs, held in different places. Firmware is in non-volatile memory, is tied to that specific hardware, and starts the machine. The operating system is on secondary storage, is loaded into main memory by the bootloader, and then manages the machine.
- "The operating system starts before the firmware." Correct model Impossible. The operating system has to be loaded from storage, and the thing that loads it is the bootloader, which is part of the firmware. Firmware is already present when the power arrives; the operating system is not.
- "Firmware is hardware, because it is built in." Correct model Firmware is software. It is stored in a hardware component, which is why the name is confusing, but it is a set of instructions and it can usually be updated. The chip is hardware; the instructions on it are firmware.
- "Applications control the hardware directly." Correct model Applications request resources from the operating system, which controls the hardware using device drivers. Direct hardware access without system-software mediation is not how the stack works.
- "A key press is a software interrupt, because software reacts to it." Why it fails The classification is about what raised the signal, not what deals with it. Software deals with every interrupt; that cannot be the distinguishing feature. Corrected model A key press is raised by the keyboard, a physical device, so it is a hardware interrupt. Exam-safe sentence "Pressing a key on the keyboard is a hardware interrupt, because the signal is raised by a physical device."
- "Division by zero is a hardware interrupt, because the processor's arithmetic unit detects it." Why it fails The detection happens in hardware, but the cause is an instruction in a running program. No device asked for attention; a program did something it could not complete. Corrected model Division by zero is a software interrupt, and so is two processes trying to access the same memory location. Exam-safe sentence "Division by zero is a software interrupt, because the condition arises inside a program that is executing."
- "Assembly language is machine code." Correct model They are different. Machine code is binary and is executed directly. Assembly language uses mnemonics and must be translated by an assembler first. They are closely related — roughly one instruction each — but they are not the same thing. Exam-safe sentence "Assembly language uses mnemonics and must be translated into machine code by an assembler."
- "An assembler translates a high-level language." Correct model An assembler translates assembly language into machine code. High-level languages are translated by a compiler or an interpreter. Exam-safe sentence "An assembler is needed to translate an assembly language program into machine code."
- "Assembly language is machine-independent because you can read it." Correct model Readability and portability are unrelated. Assembly language is tied to one processor's instruction set, so a program written for one type of processor will not assemble or run on another. Exam-safe sentence "Assembly language is machine-dependent, because its mnemonics correspond to one particular processor's instructions."
- M1. "The operating system is application software." Why it fails Application software provides the services the user requires. An operating system provides the services the computer requires, and applications run on it. Putting it in the wrong category inverts the whole layer model. Corrected model An operating system is system software. It manages the hardware and resources and provides the platform on which application software runs. Exam-safe sentence "An operating system is system software, because it provides the services the computer requires and gives application software a platform to run on." Show the retrieval checkHide the check Check: Which category does an operating system belong to, and what is the test?Answer: System software. The test is whose requirement it serves — the computer's, not the user's.
- M2. "All system software is an operating system." Why it fails It ignores the second half of the category. Backup software, anti-malware, compression tools, storage-management tools, encryption utilities and device drivers are all system software and none of them is an operating system. Corrected model System software has two parts: the operating system and utility software. Every operating system is system software; not all system software is an operating system. Exam-safe sentence "System software includes the operating system and utility software such as backup, anti-malware, compression, storage-management and encryption programs." Show the retrieval checkHide the check Check: Name three pieces of system software that are not operating systems.Answer: Any three of: backup software, anti-malware, compression tools, storage-management tools, encryption utilities, device drivers.
- M3. "Firmware is physical hardware." Why it fails The name suggests something halfway between hardware and software, and firmware is stored in a hardware component — but what is stored there is a set of instructions. The fact that firmware can be updated by a download proves it is not physical. Corrected model Firmware is low-level software held in non-volatile memory and closely associated with specific hardware. The chip is hardware; the instructions on it are firmware. Exam-safe sentence "Firmware is low-level software stored in non-volatile memory that provides the initial control of the hardware it is associated with." Show the retrieval checkHide the check Check: Give one piece of evidence that firmware is software rather than hardware.Answer: It can be updated — the instructions are replaced without any physical component being changed.
- M4. "Firmware and the operating system are identical." Why it fails They are stored in different places, run at different times and do different jobs. Merging them makes the start-up sequence impossible to describe. Corrected model Firmware is in non-volatile memory, is tied to that specific hardware, and provides the initial control. The operating system is on secondary storage, is loaded into main memory by the bootloader, and then manages the whole machine. Exam-safe sentence "Firmware provides the initial control of the hardware and its bootloader loads the operating system; the operating system then manages the computer's resources." Show the retrieval checkHide the check Check: Where is firmware stored, and where is the operating system stored before it runs?Answer: Firmware is in non-volatile memory on the device; the operating system is on secondary storage until the bootloader loads it into main memory.
- M5. "The operating system starts before firmware." Why it fails It is not merely conventional but impossible. The operating system has to be loaded from storage, and loading requires a program that is already running. The only software already present when the power arrives is the firmware. Corrected model Hardware → firmware (including the bootloader) → operating system → applications. The bootloader in firmware runs on the hardware, the operating system runs on the firmware, and applications run on the operating system. Exam-safe sentence "The bootloader, which is part of the firmware, runs on the hardware and loads the operating system into main memory; applications then run on the operating system." Show the retrieval checkHide the check Check: Why can the operating system not be the first software to run?Answer: Because it is on secondary storage and must be loaded into main memory, and loading it requires a program that is already running — the bootloader in firmware.
- M6. "A device driver is a physical connector." Why it fails A cable, a port and a plug are hardware. A driver is a program, and the usual symptom of a missing one is a device that is physically connected and still not recognised. Corrected model A device driver is software that allows the operating system to communicate with and control a particular hardware device, translating general instructions into the signals that device understands. Exam-safe sentence "A device driver is software that allows the operating system to communicate with and control a particular hardware device." Show the retrieval checkHide the check Check: A device is plugged in, powered on and not recognised. What is most likely missing, and what kind of thing is it?Answer: The device driver — and it is software, not a cable or connector.
- M7. "Multitasking means a single core executes everything simultaneously." Why it fails A single processor core executes one instruction at a time. Describing genuine simultaneity removes the mechanism the question is actually testing — the switching. Corrected model The operating system allocates processor time to each process in turn, saves and restores state at each switch, and switches so rapidly that the processes appear to run at the same time. Exam-safe sentence "The operating system allocates processor time to each process in turn, saving and restoring their states, and switches between them so quickly that they appear to run simultaneously." Show the retrieval checkHide the check Check: Which single word keeps a multitasking answer honest?Answer: "Appear". The processes appear to run at the same time; a single core executes one instruction at a time.
- M8. "An interrupt always closes the current program." Why it fails If it were true, moving the mouse would close your work. It also makes the whole save-and-restore mechanism pointless — why save a state you will never return to? Corrected model The current instruction completes, the state and return location are saved, the ISR runs, the state is restored, and the interrupted program resumes from where it stopped. A process only ends if the operating system decides that an unrecoverable fault requires it. Exam-safe sentence "After the interrupt service routine has finished, the saved state is restored and the interrupted program continues from the point at which it was interrupted." Show the retrieval checkHide the check Check: Why is the state saved at step 3 of interrupt handling?Answer: So that it can be restored at step 8 and the interrupted program resumed at step 9 exactly where it stopped.
- M9. "A keyboard press is a software interrupt." Why it fails It classifies by what deals with the interrupt rather than what raised it. Software deals with every interrupt, so that cannot be the distinguishing feature. Corrected model A key press is raised by the keyboard, a physical device, so it is a hardware interrupt — one of the two examples the syllabus names, along with moving the mouse. Exam-safe sentence "Pressing a key on the keyboard is a hardware interrupt, because the signal is generated by a physical device." Show the retrieval checkHide the check Check: What is the single question that classifies any interrupt?Answer: Did a physical device raise the signal, or did a running program?
- M10. "Division by zero is a hardware interrupt." Why it fails The condition is detected by the processor, which tempts candidates to call it hardware — but nothing external asked for attention. A program executed an instruction it could not complete. Corrected model Division by zero is a software interrupt, as is two processes trying to access the same memory location. Both are conditions arising inside executing software. Exam-safe sentence "Division by zero is a software interrupt, because the condition arises inside a program that is executing." Show the retrieval checkHide the check Check: Name the two software-interrupt examples the syllabus gives.Answer: Division by zero, and two processes trying to access the same memory location.
- M11. "An ISR is an ordinary user application." Why it fails An application provides a service the user requires and is started when the user asks for it. An ISR is never started by a user, provides no user service, and exists solely to service one particular interrupt. Corrected model An interrupt service routine is a specialised routine executed to service a particular interrupt. Each cause has its own. When it finishes, control returns to the interrupted process. Exam-safe sentence "An interrupt service routine is a specialised routine that is executed to service a particular interrupt, after which control returns to the interrupted process." Show the retrieval checkHide the check Check: Is there one ISR for the whole computer, or more than one? Why does it matter?Answer: More than one — each cause has its own. That is why the interrupt must be identified before the correct routine can be located.
- M12. "High-level code is directly executed by the CPU." Why it fails If it were true there would be no reason for compilers, interpreters or assemblers to exist — and the whole of 4.2 would be unexplainable. Corrected model A CPU executes machine code and nothing else. High-level source must be translated into machine code by a compiler or an interpreter first. Exam-safe sentence "High-level language must be translated into machine code before the CPU can execute it." Show the retrieval checkHide the check Check: What is the only kind of code a CPU can execute?Answer: Machine code — binary instructions from its own instruction set.
- M13. "Machine code is portable between every CPU." Why it fails It confuses machine code with high-level source. Portability is precisely what machine code does not have; it is the defining disadvantage of the low level. Corrected model Every design of processor has its own instruction set, so machine code is machine-dependent. High-level source is machine-independent, but must still be translated for each processor. Exam-safe sentence "Machine code is machine-dependent, because each type of processor has its own instruction set." Show the retrieval checkHide the check Check: Which is machine-independent — the source code or the translated machine code?Answer: The high-level source code. The machine code produced from it is tied to one instruction set.
- M14. "Assembly language is machine code." Why it fails They are closely related but not the same. A CPU cannot execute the word LOAD; something must replace it with binary first. Corrected model Assembly language uses mnemonics and must be translated by an assembler. Machine code is the binary the CPU executes directly. The correspondence between them is close to one-to-one, which is why they are easy to confuse. Exam-safe sentence "Assembly language uses mnemonics rather than binary, and an assembler is needed to translate it into machine code." Show the retrieval checkHide the check Check: What is the one thing that has to happen to an assembly language program before it can run?Answer: It must be translated into machine code by an assembler.
- M15. "An assembler translates high-level code." Why it fails It names the wrong translator, which is a direct loss of a mark in any question that asks which translator is needed. Corrected model An assembler translates assembly language into machine code. A compiler or an interpreter translates a high-level language. Exam-safe sentence "An assembler is needed to translate an assembly language program into machine code; high-level languages are translated by a compiler or an interpreter." Show the retrieval checkHide the check Check: Match each translator to what it translates: assembler, compiler, interpreter.Answer: Assembler → assembly language. Compiler → a whole high-level program. Interpreter → a high-level program, line by line.
- M16. "A compiler translates and executes one line at a time." Why it fails This is the interpreter's behaviour attached to the wrong name. It also makes the compiler's error report and its executable file impossible to explain. Corrected model A compiler translates the whole program at once, before it is executed, and produces an executable file. Exam-safe sentence "A compiler translates the whole code at once before executing it, producing an executable file." Show the retrieval checkHide the check Check: A 500-line program has an error on line 40. How many lines does a compiler execute?Answer: None. Nothing is executed until the whole program has translated successfully.
- M17. "An interpreter translates the entire program first." Why it fails It is the compiler's behaviour under the wrong name, and it contradicts the interpreter's own error behaviour: if it translated everything first, it could not stop at the first error it reached. Corrected model An interpreter translates and executes the code line by line: one statement is translated, then executed, then the next. Exam-safe sentence "An interpreter translates and executes the code line by line." Show the retrieval checkHide the check Check: A 500-line program has errors on lines 40 and 310. How many errors does an interpreter report on one run?Answer: One — the error at line 40. Execution stops there, so line 310 is never reached.
- M18. "An interpreter creates a standalone executable." Why it fails It removes the interpreter's defining disadvantage. If an executable existed, the source would not need translating on every run. Corrected model An interpreter produces no executable file. In the simplified syllabus model, the source code and a suitable interpreter are both needed wherever the program is to run. Exam-safe sentence "An interpreter does not produce an executable file, so the source code is translated again every time the program is run." Show the retrieval checkHide the check Check: Why can a company not distribute an interpreted program without giving away its source code?Answer: Because no executable is produced — the interpreter needs the source in order to translate and run it each time.
- M19. "Compiled programs never need supporting software." Why it fails It overstates a genuine advantage. It is true that a compiled program does not need its source code or a translator present in order to run — but it still needs an operating system to load it, allocate memory to it and give it access to files and devices, and it is still built for a particular platform. Corrected model A compiled executable runs without a translator. It does not run without an operating system, and it runs only on the platform it was compiled for. Exam-safe sentence "A compiled program can be run without the source code or a translator, but it still runs on an operating system and only on the platform it was compiled for." Show the retrieval checkHide the check Check: Name one thing a compiled executable still needs in order to run.Answer: An operating system — to load it, allocate memory to it and give it controlled access to hardware and storage. (It also needs the platform it was compiled for.)
- M20. "An IDE is a programming language." Why it fails It confuses the tool with the material. You write a language in an IDE, and the same IDE often supports several languages. Corrected model An IDE is software that combines the tools needed to develop programs — editor, run-time environment, translators, error diagnostics, auto-completion, auto-correction and prettyprint. It is also not itself the translator; it calls one. Exam-safe sentence "An IDE is software that combines the tools used to write, translate, run and correct programs into one application." Show the retrieval checkHide the check Check: Is the translator part of the IDE, or something the IDE uses?Answer: Something the IDE contains and calls. The translator remains a compiler or an interpreter in its own right.
- M21. "Auto-correction repairs program logic." Why it fails Auto-correction works on things it can recognise — a missing bracket, a misspelled keyword. It has no idea what your program is supposed to compute, so it cannot know that dividing by the wrong variable is wrong. Corrected model Auto-correction corrects recognised simple syntax or formatting mistakes, and may produce an incorrect change, so every correction must be reviewed. Logic errors are found only by testing. Exam-safe sentence "Auto-correction fixes recognised simple syntax mistakes and must be reviewed, because it cannot detect a logic error and may itself make an incorrect change." Show the retrieval checkHide the check Check: What finds a logic error?Answer: Only the programmer, by running the program in the run-time environment with test data whose correct answer is already known.
- M22. "Prettyprinting fixes syntax and logic errors." Why it fails Prettyprint changes presentation: indentation, spacing, layout. Reformatting a broken statement leaves it exactly as broken, and reformatting a wrong algorithm leaves it exactly as wrong. Corrected model Prettyprint formats code consistently and improves readability. It changes appearance only. Syntax errors are reported by error diagnostics; logic errors are found by testing. Exam-safe sentence "Prettyprint formats the code consistently to improve indentation and readability; it does not change what the program does." Show the retrieval checkHide the check Check: After prettyprinting a program, what has changed and what has not?Answer: Its layout and readability have changed. What it does — and any error in it — has not.
Examiner tips
- How to use this chapter. Read a teaching section, answer its recall and transfer questions on paper before opening the answer, then use the matching tool in the laboratory that follows only to check your reasoning. The tools cannot be taken into the exam; the ordered sentences you rehearse can.
- A comparison question is not a definition question. Answering one with the other spends a whole paragraph on the wrong question. "What is the advantage of a compiler for distributing software?" is not asking what a compiler is. Name the advantage, then tie it to distribution.
- The one-line test. If a question mentions mnemonics, the answer is an assembler. If it mentions an executable file or distribution, the answer is a compiler. If it mentions testing while writing or stopping at an error, the answer is an interpreter.
- Two rules that make the schedule work. First, always attempt before you look — producing a wrong order and correcting it builds far more durable memory than reading a right one. Second, if a session takes noticeably longer than the time shown, that is data, not failure: it tells you which competency to put in the next session.
Frequently asked questions
What is the difference between system software and application software?
System software provides the services the computer itself requires: it manages the hardware and provides the platform other software runs on, and includes the operating system and utility software. Application software provides the services the user requires, performing tasks such as word processing, browsing or games, and it depends on the system software beneath it for every file, memory allocation and device it uses. Who installed the software, or where it came from, decides nothing — only what it is for.
In what order do hardware, firmware, the operating system and applications start up?
Applications run on the operating system, the operating system runs on the firmware, and the bootloader, which is part of the firmware, runs on the hardware. Firmware is held in non-volatile memory and is already present when the power arrives, so its bootloader is what loads the operating system into main memory from secondary storage. The operating system cannot start first, because it has to be loaded by a program — the bootloader — that is already running.
What is the difference between a hardware interrupt and a software interrupt?
A hardware interrupt is raised by a physical device, such as pressing a key on the keyboard or moving the mouse. A software interrupt is raised by a program that is running, such as a division by zero or two processes trying to access the same memory location. Both are handled the same way once raised: the current instruction finishes, the processor's state is saved, an interrupt service routine runs, and then the state is restored so the interrupted program continues from where it stopped.
Does an interrupt close the program that was running?
No. An interrupt pauses a program rather than ending it. The current instruction completes, the processor's state is saved, an interrupt service routine executes to service the event, and then the saved state is restored so the interrupted program resumes from exactly the point at which it was interrupted. A process ends only if the operating system decides that an unrecoverable fault requires it, not simply because an interrupt occurred.
What is the difference between a compiler and an interpreter?
A compiler translates the whole of a high-level program at once, before any of it is executed, producing an executable file and a single error report covering the whole program. An interpreter translates and executes a program line by line, stopping and reporting an error at the exact statement where it occurs, and produces no executable file, so the source code must be translated again every time the program runs. An interpreter is mostly used while a program is being developed; a compiler is used to translate the finished program.
What is the difference between a high-level language and a low-level language?
A high-level language uses instructions closer to human language than to a processor's own instruction set, so it is easier to read, write and debug, and is generally machine-independent — but it must be translated before a CPU can execute it and gives less direct control of the hardware. A low-level language, such as assembly language or machine code, is close to the processor's own instructions, machine-dependent and harder to read, write and debug, but allows direct manipulation of registers and memory locations.
Can an IDE fix errors in a program's logic?
No. An IDE's tools work on syntax and presentation, not on whether the algorithm is correct. Auto-completion suggests identifiers, auto-correction repairs recognised simple mistakes, error diagnostics report syntax and translation errors, and prettyprint formats the layout — but none of them can tell that a program computes the wrong answer. In an exam answer, logic errors must be described as something only testing, not the IDE, can find.
Syllabus reference and sources
Written against: Cambridge O Level Computer Science (2210) 2026–2028 Syllabus (Subject Content, Topic 4: Software).
Written by: Academiq Edu Instructor Panel
Source documents
All educational content, structured explanations, diagrams, worked examples, and pedagogical materials contained within this chapter revision note are the exclusive intellectual property of Academiq Edu. Unauthorized reproduction, distribution, resale, or extraction of this content without prior written permission is strictly prohibited under international copyright laws. Cambridge Assessment International Education (CAIE) is a registered trademark of Cambridge University Press & Assessment. This revision guide is independently authored by the Academiq Edu Instructor Panel for educational purposes and is not affiliated with or endorsed by Cambridge Assessment International Education.
Every chapter note, MCQ explanation, and structured mark scheme is rigorously vetted by Cambridge curriculum specialists.

