What is software and its types

What is Software

The term Software is used to describe the instructions that tell the hardware how to perform a task. Without software, hardware cannot do any work. Thus, software is the means of controlling hardware. In early days of computer, only standard programs supplied by the computer manufacturers were known as software. But now-a-days the term has got much wider meaning. It includes programs developed by the user or procured by him, from an organization dealing in software.

Types of Software

System programs or system software

These programs are designed to make the computer easy to use. A system program can’t solve a particular problem, but it makes easy to use necessary application programs. It consists of programs that control and support the computer system and its data processing applications. Following are different types of system software:

  1. Programming languages
  2. Diagnostic routines
  3. Operating systems
  4. Language translators
  5. Utility programs
  6. Firmware

1. Programming languages

Human beings use natural languages such as English and Spanish to communicate with each other. Similarly, a programming language is used to communicate with computer through a program. For each specific task a program must be written so that computer can interpret (=understand) it. A program is developed to direct processing steps of the computer. Every instruction must follow specific rules that form a language. Generally programming languages are provided by the manufacturer.

Types of Languages:

  • Machine / 1st Generation Languages
  • Compiler / 3rd Generation Languages
  • Assembler / 2nd Generation Languages
  • 4th Generation Language

2. Diagnostic Routines

These programs are usually written and provided by the computer manufacturers. They assist in program debugging. They usually trace the processing of the program being debugged. They also help to identify the hardware accessories supplied by the manufacturer. They identify the type of processor, BIOS supplied, keyboard attached, type of monitor supplied with the computer manufacturer, etc.

Using the program, one can find answer to the following questions:

What type of processor does the computer use?

  • Is there a math co-processor in the computer?
  • Who is the BIOS manufacturer?
  • What is the total amount of conventional memory in the computer?
  • What type of keyboard is attached to the computer?
  • What is the display type?
  • Is there any mouse attached to the computer? What type is it and who made it?

Generally diagnostic routines are treated as a category of utility or service programs.

3. Operating System

Operating System is a Master control program that runs the computer. In olden days lot of time used to be wasted in setting up computer and everything was supervised by an operator. Every time the computer is started, the operating system must be complied / assembled.

Similarly, several application programs were required to be read into the CPU everyday. Thus lot of time was wasted in setting up the computer. This wastage of time can be avoided by maintaining all programs in storage devices. The required program can be recalled into CPU more quickly than in olden days.

Operating systems optimize the man-machine capabilities. Operating systems are based on the concept of modularity. Operating systems are also known as “executive systems” or “Control systems” or “monitor systems”.

4. Language Translator

A language translator or language processor accepts statements in one language and produces equivalent statements in another language. It reads the statements of source language and converts them into statements of other language. Most computer installations have several language translators, one for each programming language.

5. Firmware

Firmware or micro programs refer to a series of special program instructions. In a computer, the most basic operations such as addition, multiplications etc. are carried out by hard wired circuits. These fundamental tasks are combined in the form of micro programs to produce high level operations such as move data, make comparisons etc.

These micro programs are called firmware they deal with very low-level machine operations. For example, a small program for computing square root can be stored in computer’s secondary memory or it can also be embedded into CPU’s circuitry. But the later is very expensive. It is economical only if the square root has to be calculated for large number of times.

Generally simple arithmetic/logical operations (like add, subtract, multiply, divide) are provided in the CPU circuitry so that they can be performed at a very high speed. These operations are repeated for number of times in both business and scientific applications.

Application programs or application software

These programs are designed for specific computer applications. For example, a program that prepares payroll for a business is an application program.