Ruled

Types of software

System software against application software, the translators, utilities, and the licensing categories from proprietary to free and open source.

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 ADD and MOV) 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.

CompilerInterpreter
TranslatesThe whole program at onceOne statement at a time
OutputA separate executable fileNone
ErrorsAll reported togetherStops at the first
Speed of executionFastSlow
Memory needed at run timeLessMore (the interpreter must be present)
DebuggingHarderEasier
ExamplesC, 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.

PackagedCustom
Written forMany usersOne organisation
CostLow, shared across buyersHigh, borne by one buyer
AvailabilityImmediateMust be developed first
Fit to requirementApproximateExact
SupportFrom the vendor, for everyoneFrom 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 solved

Every step is shown, in the order you would write it in an answer book.

Example 1

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.

  1. 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.

  2. (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).

  3. (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.

  4. (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).

  5. 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.

Example 2

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?

  1. 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.

  2. 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.

  3. 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.

  4. 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 solutions

Work each one on paper first. The full solution — not just the answer — is one click away.

Problem 1Basic

Differentiate between system software and application software, with three examples of each.

Show solution
System softwareApplication software
PurposeManages and controls the computer itselfPerforms a task for the user
Written forThe hardwareA user's requirement
NecessityEssential — the machine cannot work without itOptional — installed as needed
RunsFrom the moment the machine startsWhen the user opens it
Depends onThe hardwareThe system software beneath it
Written inUsually low-level or system languagesUsually high-level languages
ExamplesWindows, Linux, a compiler, a device driver, antivirusMS Word, MS Excel, Chrome, a payroll program

The one-line distinction: system software serves the machine, application software serves the user.

AnswerSystem software (Windows, compilers, drivers) manages the machine; application software (Word, Excel, a payroll program) does the user's work.
Problem 2Basic

What is a utility program? List four with their functions.

Show 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.

  1. Antivirus — scans files and memory for malicious software, quarantines or removes what it finds, and monitors the system continuously. Examples: Windows Defender, Avast.

  2. 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.)

  3. File compression tool — reduces file size for storage or transfer, and combines many files into one archive. Examples: WinZip, 7-Zip, WinRAR.

  4. 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.

AnswerA small system program that maintains or supports the computer — e.g. antivirus, disk defragmenter, file compression, backup software.
Problem 3Exam level

Compare a compiler and an interpreter under at least six headings. Which would you prefer while learning to program, and why?

Show solution
HeadingCompilerInterpreter
Unit translatedThe whole program at onceOne statement at a time
Output producedA separate executable fileNone; nothing is saved
When translation happensOnce, before executionOn every run
Error reportingAll errors listed together, before executionStops at the first error found
Execution speedFast — machine code runs directlySlow — translation repeats each time
Memory at run timeLower; the compiler is not neededHigher; the interpreter must stay in memory
Ease of debuggingHarder — errors are reported away from the running programEasier — execution stops at the offending line
DistributionShip the executable; source can stay privateThe source must be supplied
ExamplesC, C++, RustPython, BASIC, JavaScript

Which is better while learning — an interpreter. Three reasons:

  1. 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.

  2. 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.

  3. 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.

AnswerCompared on unit translated, output, error reporting, speed, memory, debugging and distribution. An interpreter is better for learning — immediate feedback, errors located at the failing line, and partly working programs still run.
Problem 4Exam level

Distinguish between packaged and custom software. Which should a small bookshop choose for its accounts, and why?

Show solution
Packaged (general-purpose)Custom (tailor-made)
Written forMany users with similar needsOne organisation
CostLow — development is shared across all buyersHigh — one buyer pays for all development
AvailabilityImmediate; buy and installWeeks to months of development first
Fit to requirementApproximate; the user adapts to the softwareExact; the software matches existing procedures
ReliabilityHigh — tested by very many usersDepends on the developer; fewer users find the bugs
Documentation and trainingPlentiful; books, courses, online helpMust be produced specially
SupportVendor support, large user communityOnly from the developer, who may move on
ModificationLimited to what the settings allowAnything can be changed, at a price
ExamplesTally, MS Excel, MS OfficeA university examination system, a bank's core banking application

Recommendation for a small bookshop — packaged software.

  1. Cost. Custom development would cost many times the shop's likely annual software budget. A packaged accounts program is a small one-off purchase.
  2. 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.
  3. Available now. The shop can be running this week rather than after months of development.
  4. 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.
  5. 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.

AnswerPackaged software is written for many, cheap, immediate and approximate; custom software is written for one, costly, slow to arrive and exact. A small bookshop should buy packaged accounting software — its needs are ordinary, the cost is a fraction, and support and legal updates come with it.
Problem 5Challenge

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 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 availableSource withheld
No chargeLinux, Firefox, LibreOfficeChrome, Adobe Reader (freeware)
PaidRed Hat Enterprise LinuxWindows, 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.

AnswerProprietary = paid, source withheld; freeware = free, source withheld; shareware = free trial then paid; open source = source published and modifiable. Neither implication holds: Chrome is free but not open source, and Red Hat Enterprise Linux is open source but sold. Price and openness are independent.