Home » Types of Softwares

Category Archives: Types of Softwares



It is important to note that a computer cannot do any operation itself. To perform a particular task it must be instructed in such a way that we can get the desired output. Hence it is recommended to specify a set of instructions to the computer to solve a problem, so we can define a computer software as:
RELATIONSHIP DIAGRAM BETWEEN HARDWARE, SOFTWARE, AND THE USER OF THE COMPUTERA set of instructions that perform a particular task is called the program, or software program. The instructions in the program direct the computer to perform inputoperation process the data and output the results. For efficient and effective functions of a computer, the help of different software are also required. The term software refers to the set of instructions, procedures, and associated documents like flowcharts, manuals etc. In general language, software is the soul of a computer, without the software a computer cannot work it means its hardwarecannot execute any program. There is a relationship between hardware and software of a computer. They depend on each other with the help of software the hardware cannot be utilized and without hardware, software cannot be executed. So we can say that a computer is nothing when any one of hardware or software is unavailable.


Computer software is generally classified into two broad categories:
      1.      Application software
      2.      System software


Application Software, also known as application package, is a set of one or more programs designed to carry out operation for a specified application. For example, a payroll package produce pay-slips as the major output and an application package for processing examination results produces marks sheet as the major output along with some other statistical report. Similarly, a program written by a scientist to solve his particular research problem is also an application package. The program that constitutes an application package is known as application program and the person who prepares application programs is known as application programmer.

      Traditionally, application packages were limited  to the general purpose functions of inventory control, production scheduling, general ledger, general accounting and payroll because these were the major application area for which a company acquired a computer. Because there is such a great demand for these functions, nowadays packaged software supporting them is available on almost every kind of computer hardware. However, the software industry has expand to serve many specific markets, specific purpose application software has also been developed for specialized area, such as banking, hospital administration, insurance, publishing, manufacturing, science and engineering, etc. In fact, many computer companies have started to offer computer systems to go along with their software as turnkey system for specific industry needs. Development of specific purpose application packages has expanded along with the increased use of computers in non-financial operations.


System Software, also known as system package, is a set of one or more programs designed to control the operation of a computer system. These programs do not solve programs. They are general programs written to assist humans in the use of computer system by performing tasks such as controlling all of the operations, required to move data into and out of a computer all the steps in executing an application program. In general, system package, support the running of other software; communicate with peripheral devices (printers, card reader, disk and tape devices etc.); support the development of other types of software; and monitor the other use of hardware resources (memory, peripherals, CPU etc.). Thus, System Software makes the operation of a computer system more   effective efficient. The programs included in system software are called Systems programs and the person who prepares system software is referred to as a system programmer. Good system software allows application packages to be run on the computer with less time and effort.

     Without system software, application packages could not be run on the computer system. However, the production of application packages is a complex task that requires extensive knowledge and considerable specialized training in computer science. System programmers, who prepare system software, are highly trained computer specialists and important member of computer architectural team.


Operating system is one of the most important system software.


An operating system of a computer is a set of instruction that is used to manage various hardware resources and over all operation of a computer system. It is an intermediate between computer hardware and a computer user. It is designed to support the activity of a computer installation. Its primary activity is to increase the performance and efficiency of the computer system. As for example a manager of a company manages the whole company, he increase the performance and efficiency of that company and he is also responsible for any loss to the company, similarly the operating system makes the operation of the entire system smooth. It also makes the computer user friendly.

Functions of an Operating System:

  • An operating system of a computer manages all resources of the computer. Here hardware and software are the resources. An operating system uses all resources in the best way.
  • An operating system of a computer provides a good interface between computer and the user. That means it provides a medium to communicate the user with the computer. These function are the most important functions of an operating system.   
  • Processor management is the assignment of the computer processors to different tasks being performed by the computer system.
  • Memory management is the allocation of the main memory and other storage areas to the system programs as well as user programs and data.
  • It maintenance the internal time clock log of computer system usages for all users of the computer.
  • It interprets the commands and instruct to the computer system.
  • Coordination among compilers, interpreters, assemblers, utilities programs and other software of the various users.
  • Production of dumps, traces, error messages, and other debugging and error-detecting aids.


There are various types of operating system and some of them are listed below.

1. Batch processing operating system

2. Multiprogramming operating system

3. Multiprocessing operating system

4. Time-sharing operating system 

5. Real-time operating system


In Multiprogramming operating system CPU, main memory, and I/O sub systems are concerned as resource. Batch processing system was concerned with only CPU efficiency that avoids wastage of CPU time. But multiprogramming system has included balanced utilization of all resources of the system. When resources are shared among a set of process, each process can control over the allocated resources. If resources are not available, the process has to wait until the resources are available. 

       Multiprogramming operating system utilizes the resources efficiently by running several processes at a time. In multiprogramming operating system one process uses the CPU while the other processes use the peripheral devices or remain in the memory as ready state. In this operating system multiple processes switch among the processor to get executed. Multiprogramming operating system allows several processes to be in the memory at the same time to utilize the CPU by ensuring that the CPU always has a process to execute. 


Time-sharing operating system is a multitasking operating system. Time-sharing is a logical extension of the multiprogramming operating system. In Time-sharing operating system the CPU executes multiple processes by switch among them so frequently that the users can interact with each program while it is running. A Time-sharing operating system allows many users to share the computer simultaneously. In this system a process switch so rapidly that the entire system is dedicated to the user, even though it is being shared among many users.


A Real-time operating system is a multitasking operating system that aims at executing real time applications. Real-time operating system often use specialized scheduling algorithm so that they can achieve a deterministic nature of behavior. The main object of Real-time operating system is their quick and predictable response to events. They have an event-driven or Time-sharing design and often aspects of both. As event-driven system switches between tasks based on their priorities or external events while time-sharing operating system switches the tasks based on the clock interrupt.



        An interpreter is a program which translates one statement of a high-level language program into machine codes and executes it. In this way it proceeds further till all the statement of the program are translated and executed. On the other hand, a
compiler goes through the entire high-level language program once or twice and then translates the entire program into machine codes. A compiler is nearly 5 to 25 times faster than an interpreter.
              An interpreter is a small program as compared to the compiler. It occupies less memory space. It can be used in a smaller system which has limited memory space. The object program produced by the compiler s permanently saved for future reference. On the other hands, the object code of the statement produced by an interpreter is not saved. If an instruction is used next time, it must be interpreted once again and translated into machine code.


A compiler is a translating program which translates the instructions of programs written in high level languages into machine language. Since a computer system can only understand machine level language or we can say that computers can only understand the instructions of programs if the instructions are written using 1s and 0s. So it becomes necessary to translate the high level language programs into machine level programs and this work is done by the compiler. A compiler is so called because it compiles a set of machine language instructions for every program instruction of a high level language. Now programs which are written in high level languages are called source programs and source program after translation by the compiler are called object program. Source program and object program are the same program but at the different levels of development.
A compiler of a particular high level language cannot compile for other high level languages. As for example a compiler program which is designed for FORTRAN language, one of the high level languages, cannot compile for C language, also one of the high level language, programs. Thus each high level language has its own compilers. This problem is also true for distinct computers I mean to say that if a high level program (source program) is translated into machine level language (object program) in one computer cannot be same for other computers. The final conclusion is that every computer must have its own compiler for a particular language. Compilers are the large programs so they are stored into secondary memory.
A program which translates a high-level language program into a machine language program is called a compiler. A compiler is more intelligent than an assembler. It checks all kind of limits, ranges errors etc. But its program execution time is more, and occupies a larger part of computer memory.It has low speed and low efficiency of memory utilization.

SELF OR RESIDENT COMPILER: If a compiler runs on a computer for which it produces the object code, then it is known as a self or resident compiler. 
CROSS COMPILER: If a compiler runs on a computer other than that for which it produces the object code, then it is called a cross compiler.



A program that translates an assembly language program in to a machine language program is known as an assembler. A less powerful and cheaper computer may not have enough software and hardware facilities for program development and convenient assembly. In such a situation, a faster and powerful computer can be used for program development. The program so developed are to be run on smaller computers. For such program development a cross assembler is required. 


A cross assembler is an assembler that runs on a computer other than that for which it produces machine codes.


An assembler which runs on a computer for which it produces object codes is called a self assembler or resident assembler.