A set of instructions to carry out these functions is called a program. A group of such programs that are put into a computer to operate and control its activities is called the software.
Software is an essential requirement of computer systems. As a car cannot run without fuel, a computer cannot work without software. There are four major kinds of software that are implemented as below:
Figure : Layers of Software
1) Operating System
2) Utility Program
3) Language Processors
4) Application Program
1. Operating System:
The software that manages the resources of a computer system and schedules its operation is called operating system. The operating system acts as an interface between the hardware and the user programs and facilitates the execution of the programs.
The principal functions of operating system include:
▪ To control and coordinate peripheral devices such as printers, display screen and disk drives.
▪ To monitor the use of machine’s resources.
▪ To help the application programs execute its instructions.
▪ To help user develop programs.
▪ To deal with any faults that may occur in the computer and inform the operator.
The most popular operating system for an 8-bit microprocessor is CP/M (Control Program for Microprocessors).
Recently, with the introduction of 16/32-bit processors, operating systems such as MSDOS, UNIX and CP/M-86 are becoming popular.
2. Utility Program:
There are many tasks common to a variety of application. Examples of such tasks are:
▪ Sorting a list in a desired sequence
▪ Merging of two programs
▪ Copying a program from one place to another
▪ Report writing
One need not write programs for these tasks. They are standard, and normally handled by utility programs.
Like the operating system, utility programs are pre-written by the manufacturers and supplied with the hardware. They may also be obtained from standard software vendors.
3. Language Processors:
Computers can understand instructions only when they are written in their own language called the machine language. Therefore, a program written in any other language should be translated into machine language. Special programs called language processors are available to do this job.
These special programs accept the user programs and check each statement and, if it is grammatically correct, produce a corresponding set of machine code instructions. Language processors are also known as translators.
These are two forms of translators:
A compiler checks the entire user-written program (known as the source program) and, if error-free, produces a complete program in machine language (known as object program).
An interpreter does a similar job but in a different style. The interpreter translates one statement at a time and, if error-free, executes. This continues till the last statement. Thus an interpreter translates and executes the first instruction before it goes to the second, while a compiler translates the whole program before execution.
The major differences between them are:
1. Error correction (called debugging) is much simpler in the case of the interpreter because it is done in stages. The compiler produces an error list for the entire program at the end.
2. Interpreters take more time for the execution of a program compared to compilers because a statement has to be translated every time it is read.
4. Application Program:
While an operating system makes the hardware run properly, application programs make the hardware do useful work. Application programs are specially prepared to do certain specific tasks. They can be classified into two categories.
1. Standard application
▪ Sales Ledger
▪ Purchase Ledger
▪ Statistical Analysis
▪ Pay roll
▪ Inventory Management
2. Unique application
Requirement is unique that is unique application. There are situations where one may have to develop one’s own programs to suit one’s unique requirements.