Types of software
System software against application software, the translators, utilities, and the licensing categories from proprietary to free and open source.
Module contents
Software is a set of instructions that tells the hardware what to do. A single such set, written for one purpose, is a program.
All software divides into two kinds, by whom it serves.
System software
Manages and controls the computer itself, and provides the platform on which everything else runs. It is written for the hardware, not for a user's task.
Operating system
The master control program — it manages memory, processes, files and devices, and presents an interface. Covered in Module 2. Examples: Windows, Linux, macOS, Android, iOS, UNIX.
Language translators
A computer executes only machine language — binary. Anything written in any other language must be translated first.
-
Assembler. Translates assembly language (mnemonic instructions such as
ADDandMOV) into machine language. One assembly instruction usually becomes one machine instruction. -
Compiler. Translates a whole high-level program into machine code in one pass, producing an independent executable file. It reports all the errors it finds together. Because translation happens once and the result is reused, execution is fast. Used by C, C++ and Java (to bytecode).
-
Interpreter. Translates and executes a high-level program one statement at a time, with no executable file produced. It stops at the first error. Translation happens on every run, so execution is slower, but testing is quicker and errors are easier to locate. Used by Python, BASIC and JavaScript.
| Compiler | Interpreter | |
|---|---|---|
| Translates | The whole program at once | One statement at a time |
| Output | A separate executable file | None |
| Errors | All reported together | Stops at the first |
| Speed of execution | Fast | Slow |
| Memory needed at run time | Less | More (the interpreter must be present) |
| Debugging | Harder | Easier |
| Examples | C, C++ | Python, BASIC |
The distinction in one line: a compiler translates a book and hands you the translation; an interpreter reads the book aloud to you in your language, line by line, every time you want to hear it.
Utility software
Small programs that maintain and support the system, rather than doing a user's work:
- Antivirus — detects and removes malicious software
- Disk defragmenter — rearranges scattered file fragments into contiguous blocks so a hard disk reads faster
- Backup software — copies data so it can be recovered
- File compression — WinZip, 7-Zip; reduces file size for storage or transfer
- Disk cleanup — removes temporary and unnecessary files
- Device drivers — small programs that let the operating system control a specific piece of hardware. A printer needs its driver installed before it will print at all.
Linker and loader
- A linker joins the compiled object code of a program to the library routines it uses, producing a single executable.
- A loader copies that executable from disk into main memory and starts it running.
Application software
Written to do a user's job. Two kinds.
General-purpose (packaged) software
Written for many users, sold ready-made, and adapted by the user through settings.
- Word processor — MS Word, LibreOffice Writer, Google Docs
- Spreadsheet — MS Excel, LibreOffice Calc
- Presentation — MS PowerPoint, Impress
- Database — MS Access, MySQL, Oracle
- DTP — desktop publishing; PageMaker, InDesign, Scribus
- Graphics and multimedia — Photoshop, GIMP, VLC
- Browser — Chrome, Firefox, Edge
An office suite (MS Office, LibreOffice, Google Workspace) bundles several of these so they share a common interface and exchange data easily.
Custom (tailor-made) software
Written for one organisation and its particular requirements — a university's examination system, a bank's core banking application, a hospital's records system.
| Packaged | Custom | |
|---|---|---|
| Written for | Many users | One organisation |
| Cost | Low, shared across buyers | High, borne by one buyer |
| Availability | Immediate | Must be developed first |
| Fit to requirement | Approximate | Exact |
| Support | From the vendor, for everyone | From the developer, for you |
Licensing categories
An important distinction that has nothing to do with what the software does:
- Proprietary (commercial) software. Sold under a licence; the source code is not supplied and may not be modified or redistributed. Windows, MS Office.
- Freeware. Free to use, but the source code is not available. Adobe Reader, Chrome.
- Shareware. Free to try for a limited period or with limited features; payment is required to continue or unlock. WinRAR.
- Open source software. The source code is published and may be studied, modified and redistributed. Linux, Firefox, LibreOffice, MySQL.
- Free and open source software (FOSS). Open source and free of cost. The word "free" here refers to freedom rather than price.
Freeware is not open source. Chrome costs nothing but does not give you its source. Some open-source software is sold commercially with support. Free of cost and freely modifiable are two independent questions.
Worked examples
2 solvedEvery step is shown, in the order you would write it in an answer book.
Classifying software correctly
Question
Classify each as system or application software, and name the sub-type: (a) Windows 11, (b) MS Excel, (c) a printer driver, (d) a Python interpreter, (e) a college's fee-collection program, (f) WinZip.
Apply the test — who does it serve?
If it manages or supports the machine, it is system software. If it does the user's job, it is application software.
(a) Windows 11 and (c) a printer driver
Windows manages memory, files, processes and devices — system software, specifically the operating system.
A printer driver lets the operating system control one piece of hardware — system software, a device driver (a utility).
(d) A Python interpreter and (f) WinZip
The interpreter translates a high-level program into machine code, statement by statement — system software, a language translator.
WinZip compresses files to save space; it maintains the system rather than doing a user's task — system software, a utility.
(b) MS Excel and (e) the fee-collection program
Excel does a user's job — calculation and analysis — and is sold ready-made to everyone: application software, general-purpose (packaged).
The fee-collection program does a user's job and was written for this one college's rules: application software, custom (tailor-made).
Watch the trap
A Python interpreter is system software, but a program written in Python to manage a library is application software. The classification follows the purpose, not the language.
Answer
System: (a) operating system, (c) device driver/utility, (d) language translator, (f) utility. Application: (b) general-purpose, (e) custom.
Compiler or interpreter — reading the symptoms
Question
A student reports: "My program printed three lines of output and then stopped with an error on line 12." What does this tell you about how the program was translated?
Note what actually happened
Some output appeared before the error was reported. So the first eleven lines were executed, and only then was the fault on line 12 discovered.
Rule out a compiler
A compiler translates the entire program before any of it runs. A syntax error on line 12 would be reported at compile time, together with every other error found, and no executable would be produced — so nothing could have been printed at all.
Conclude it was interpreted
An interpreter translates and executes one statement at a time. Lines 1–11 were translated and executed, producing output, and the error surfaced only when line 12 was reached.
The program was interpreted — consistent with Python, BASIC or JavaScript.
State the general rule the question is testing
Partial output followed by an error is the signature of interpretation. Errors reported before any output, with several listed at once, is the signature of compilation.
Answer
It was interpreted. A compiler would have found the error before producing an executable, so no output could have appeared.
NoteThis also explains why interpreted languages feel easier to learn on: you see results from the working part of a program even while a later part is still broken.
Practice problems
5 with solutionsWork each one on paper first. The full solution — not just the answer — is one click away.
Differentiate between system software and application software, with three examples of each.
Show solutionHide solution
| System software | Application software | |
|---|---|---|
| Purpose | Manages and controls the computer itself | Performs a task for the user |
| Written for | The hardware | A user's requirement |
| Necessity | Essential — the machine cannot work without it | Optional — installed as needed |
| Runs | From the moment the machine starts | When the user opens it |
| Depends on | The hardware | The system software beneath it |
| Written in | Usually low-level or system languages | Usually high-level languages |
| Examples | Windows, Linux, a compiler, a device driver, antivirus | MS Word, MS Excel, Chrome, a payroll program |
The one-line distinction: system software serves the machine, application software serves the user.
What is a utility program? List four with their functions.
Show solutionHide solution
A utility program is a small system program that maintains, analyses or supports the computer, rather than doing a user's productive work. Utilities keep the system healthy and usable.
-
Antivirus — scans files and memory for malicious software, quarantines or removes what it finds, and monitors the system continuously. Examples: Windows Defender, Avast.
-
Disk defragmenter — over time a file's blocks become scattered across a hard disk, so the heads must move repeatedly to read one file. The defragmenter rearranges blocks so each file is contiguous, reducing seek time. (It is not used on SSDs, which have no seek time and whose cells have a limited number of writes.)
-
File compression tool — reduces file size for storage or transfer, and combines many files into one archive. Examples: WinZip, 7-Zip, WinRAR.
-
Backup and restore — copies data to another medium on a schedule, so that it can be recovered after deletion, corruption or hardware failure.
Others: disk cleanup, device drivers, disk formatting tools, screen savers, file managers.
Compare a compiler and an interpreter under at least six headings. Which would you prefer while learning to program, and why?
Show solutionHide solution
| Heading | Compiler | Interpreter |
|---|---|---|
| Unit translated | The whole program at once | One statement at a time |
| Output produced | A separate executable file | None; nothing is saved |
| When translation happens | Once, before execution | On every run |
| Error reporting | All errors listed together, before execution | Stops at the first error found |
| Execution speed | Fast — machine code runs directly | Slow — translation repeats each time |
| Memory at run time | Lower; the compiler is not needed | Higher; the interpreter must stay in memory |
| Ease of debugging | Harder — errors are reported away from the running program | Easier — execution stops at the offending line |
| Distribution | Ship the executable; source can stay private | The source must be supplied |
| Examples | C, C++, Rust | Python, BASIC, JavaScript |
Which is better while learning — an interpreter. Three reasons:
-
The feedback loop is shorter. Type a statement, run it, see the result. There is no separate compile step between writing and seeing what happens.
-
Errors point straight at the mistake. Execution stops at the line that failed, with the values in place, so the cause is usually visible. A compiler's list of forty cascading errors from one missing brace is far harder for a beginner to read.
-
A partly working program still runs. The working part executes and produces output even though a later part is broken — which is encouraging, and useful for testing an idea in pieces.
Why production systems still favour compilation: execution speed, lower memory use, and the ability to distribute a program without its source. In practice many modern languages do both — Java compiles to bytecode which is then interpreted or just-in-time compiled, taking the portability of one and much of the speed of the other.
Distinguish between packaged and custom software. Which should a small bookshop choose for its accounts, and why?
Show solutionHide solution
| Packaged (general-purpose) | Custom (tailor-made) | |
|---|---|---|
| Written for | Many users with similar needs | One organisation |
| Cost | Low — development is shared across all buyers | High — one buyer pays for all development |
| Availability | Immediate; buy and install | Weeks to months of development first |
| Fit to requirement | Approximate; the user adapts to the software | Exact; the software matches existing procedures |
| Reliability | High — tested by very many users | Depends on the developer; fewer users find the bugs |
| Documentation and training | Plentiful; books, courses, online help | Must be produced specially |
| Support | Vendor support, large user community | Only from the developer, who may move on |
| Modification | Limited to what the settings allow | Anything can be changed, at a price |
| Examples | Tally, MS Excel, MS Office | A university examination system, a bank's core banking application |
Recommendation for a small bookshop — packaged software.
- Cost. Custom development would cost many times the shop's likely annual software budget. A packaged accounts program is a small one-off purchase.
- The requirement is ordinary. Sales, purchases, stock, GST and a ledger are needs common to every small retailer, and packaged accounting software already handles them all.
- Available now. The shop can be running this week rather than after months of development.
- Reliability and support. Software used by thousands of shops has had its bugs found already, and help is available from the vendor, from books and from other users.
- Legal changes are handled for you. When tax rules change, the vendor issues an update — a custom program would need paid modification each time.
When a custom system would be justified instead: if the organisation's processes are genuinely unusual, if the volume is large enough that small inefficiencies matter, or if the software is itself a competitive advantage. None of those applies to a small bookshop.
Explain the terms freeware, shareware, proprietary software and open source software. Is all free software open source, and is all open source software free?
Show solutionHide solution
Proprietary (commercial) software. Sold or licensed for use, with the source code withheld. The licence forbids modification, reverse engineering and redistribution. You buy permission to use it, not the program itself. Windows, MS Office, Adobe Photoshop.
Freeware. Distributed free of cost, for unlimited time, but the source code is not provided and modification is not permitted. The author retains full copyright. Adobe Reader, Google Chrome, VLC's binaries as distributed.
Shareware. Distributed free on a trial basis — for a limited period, or with some features disabled, or with reminders to pay. Continued or full use requires payment. Source is not provided. WinRAR is the classic example.
Open source software. The source code is published, and the licence explicitly permits anyone to study it, modify it and redistribute it (usually on condition that the same freedoms are passed on). Linux, Firefox, LibreOffice, MySQL, Python.
Is all free software open source? No. This is the commonest confusion, and the two examples above settle it. Google Chrome costs nothing — it is freeware — but Google does not publish the whole of its source, so you cannot inspect it, modify it or build your own version. Free of charge says nothing about whether the source is available.
Is all open source software free of cost? No, not necessarily. Open source licences guarantee the freedom to obtain and modify the source, not that no one may charge. Red Hat Enterprise Linux is open source and is sold, with the customer paying for support, certification and updates rather than for the code. Many open-source projects also sell commercial licences or hosted versions alongside a free one.
The two independent questions. It helps to see this as a grid:
| Source available | Source withheld | |
|---|---|---|
| No charge | Linux, Firefox, LibreOffice | Chrome, Adobe Reader (freeware) |
| Paid | Red Hat Enterprise Linux | Windows, MS Office (proprietary) |
All four boxes are occupied, which is the proof that price and openness are separate matters.
Why the distinction is worded so carefully. In the phrase free software, "free" refers to freedom, not price — the freedoms to run, study, modify and share the program. The term FOSS (Free and Open Source Software) is used when both properties hold at once, precisely because "free" alone is ambiguous in English.