Software represents the set of programs that govern the operation of a computer system and make the hardware run. Software can be classified broadly into three categories.
1. Operating System
2. Language Processors
3. Application Software.
Operating System : Without an Operating System, a computer is a bare machine. Operating System gives life to the machine. It acts as an interface between users and the hardware of a computer system. The operating system controls the hardware and provides numerous facilities for the end- users. It is the most important system software. This can be called as the Queen of System Software.
Examples for Operating Systems are DOS(Disk operating System), Windows 95/98/2000, Windows NT, UNIX and Linux. Windows 95/2000 is the popular operating system for personal computers. Using Windows 95 as the platform, you will learn many techniques and applications to use the computer effectively. Windows NT, Unix and Linux are mostly used in major organizations to connect and serve network of computers. Linux is a free software which is becoming very popular now. Most of the Internet applications run on Linux platform. Whenever you work with a computer, you must know the operating system of the computer.
Language Processors :As programmers prefer to write their programs in one of the High Level Languages (HLLs) because it is much easier to code in such languages. However, the computer does not understand any language other than its own machine language (binary language) therefore; it becomes necessary to process a High Level Language program so as to make it understandable to the computer. The system programs which perform this very job are language processors. The language processors are given below:
Assembler :This language processor converts the program written in assembly language into machine language.
Interpreter :This language processor converts a High Level Language program into machine language by converting and executing it line by line,If there is any error in any time it report it at the same time and program execution cannot resume until the eror is rectified. Interpreter must always be present in the memory every time the program is executed as every much the program is run, it is first interpreted and then executed. For error debugging, interprerted is very much useful as it report the error(s) at the same time. But once errors are removed, unnecessary usage of memory takes place as it has to be present in the memory always.
Compiler : It also converts the High Level Language program into machine language but the conversion manner is different. It converts the entire High Level Language program in one go, and reports all the errors of the program along with the line numbers. After all the errors are removed, the program is recompiled, and after that the computer is not needed in the memory as the object programe is available. Therefore if we combine interpreter and complier, it gives the best combination for High Level Language program translation into object code.for the error removal interpreter can be used and after all the errors are removed the program can be complied enabling the removal of the language translator from the memory.
Application Software :This type of software pertains to one specific application. For instance, a software that can perform railways reservation functions can not prepare result for a school.These are the programs written by programmers to enable computer to perform a specific task such as inventory control, medical accounting, financial accounting,result preparation, railway reservation, billing etc. Application software can further be subdivided into two categories:
Customised Application Software. This type of software is tailore-made software according to a user's requirements.The software is developed to meet all the requirements specified by the user. However, this cannot be directly installed at any other user's workplace as the requirements of this user may differ from the first one and the software may not fit in the requirements of the new user.
General Application Software. This type of software is developed keeping in mind the general requirements for carrying out a specific task. Many users can use it simultaneously as it fulfills the general requirements.