The literal meaning of computer is a device that can calculate. However, modern computers can do a lot more than calculate. Computer is an electronic device that receives input, stores or processes the input as per user instructions and provides output in desired format. Computers have become an integral part of our lives because they can accomplish easy tasks repeatedly without getting bored and complex ones repeatedly without committing errors.
Historically computers were classified according to processor types because development in processor and processing speeds were the developmental benchmarks. Earliest computers used vacuum tubes for processing, were huge and broke down frequently. However, as vacuum tubes were replaced by transistors and then chips, their size decreased and processing speeds increased.
All modern computers and computing devices use microprocessors whose speeds and storage capacities are skyrocketing day by day. The developmental benchmark for computers is now their size. Computers are now classified on the basis of their size into Desktop, Laptop, Tablet, Server, Mainframe, Super-computer.
Computer input is called data and the output obtained after processing it, based on user’s instructions is called information. Text and figures which can be processed using arithmetic and logical operations to obtain information are called data. The processes that can be applied to data are of two types:
Arithmetic operations − Examples include calculations like addition, subtraction, differentials, square root, etc.
Logical operations − Examples include comparison operations like greater than, less than, equal to, opposite, etc.
The term hardware refers to mechanical devices that makes up computer. Computer hardware consists of interconnected electronic devices that we can use to control computer’s operation, input and output.
Hardware represents the physical and tangible components of a computer, i.e. the components that can be seen and touched.
Examples of Hardware are the following:
Input Unit − Devices like keyboard and mouse that are used to input data and instructions to the computer are called input unit.
Output Unit − Devices like printer and visual display unit that are used to provide information to the user in desired format are called output unit.
Control Unit − As the name suggests, this unit controls all the functions of the computer. All devices or parts of computer interact through the control unit.
Arithmetic Logic Unit − This is the brain of the computer where all arithmetic operations and logical operations take place.
Memory − All input data, instructions and data interim to the processes are stored in the memory. Memory is of two types
primary memory : Primary memory resides within the CPU e.g. RAM
secondary memory. secondary memory is external to it e.g. Hard disk, CD, DVD, etc.
the hardware devices need user instructions to function. A set of instructions that achieve a single outcome are called program or procedure. Many programs functioning together to do a task make a software. For example, a word-processing software enables the user to create, edit and save documents. A web browser enables the user to view and share web pages and multimedia files.
System Software
Software ,required to run the hardware parts of the computer and other application software, is called system software System software acts as interface between hardware and user applications. An interface is needed because hardware devices or machines and humans speak in different languages.
Machines understand only binary language i.e. 0 (absence of electric signal) and 1 (presence of electric signal) while humans speak in English, Arabic, Hindi and many other languages. system Software is required to convert all human instructions into machine understandable instructions. And this is exactly what system software does.
Based on its function,system software is of three types
Operating System
System software that is responsible for functioning of all hardware parts and their interoperability to carry out tasks successfully is called operating system (OS). OS is the first software to be loaded into computer memory when the computer is switched on and this is called booting. OS manages a computer’s basic functions like storing data in memory, retrieving files from storage devices, scheduling tasks based on priority, etc.
Language Processor (Translator)
Any machine including computer can understand only 0 and 1. This means that only instructions or programs written in machine language can be understood directly but instructions or programs written in other programming languages cannot be understood directly by the machine. As discussed earlier, an important function of system software is to convert all user instructions into machine understandable language.
When we talk of human machine interactions, languages are of three types:
Machine-level language: This language is nothing but a string of 0s and 1s that the machines can understand. It is completely machine dependent.
Assembly-level language: This language introduces a layer of abstraction by defining mnemonics. Mnemonics are English like words or symbols used to denote a long string of 0s and 1s. For example, the word “READ” can be defined to mean that computer has to retrieve data from the memory. The complete instruction will also tell the memory address. Assembly level language is machine dependent.
High level language: This language uses English like statements and is completely independent of machines. Programs written using high level languages are easy to create, read and understand.
Today programmers write programs or instruct machines using a variety of high-level programming languages. For this, it requires translation of programs written in high-level languages to make them machine-understandable. The program or software that does this translation work is called the **Language processor** **or translator**. Translator software is one kind of system software or language processor.
Program written in high level programming languages like C++ is called **source code**. Set of instructions in machine readable form is called **object code**. There are three types of translator programs or software that converts source code into object code or machine code but in different ways as shown below:
Compiler
System software that store the complete program, scan it, translate the complete program into object code and then creates an executable code is called a **compiler**.
Advantages of Compiler
execution time is faster -> as compiler translates the program as one unit.
Generates output program which can be run independently from the original program.
Once the program is compiled, it is no longer needed to compile.
Disadvantages of Compiler:
it takes more time to correct the program -> Program debugging and testing is slower
As the compiler is a large program, it requires more space in memory to store.
The compiler completes the task of translation in two steps:
The compiler reads the source program and converts into the objects programs. In this step, if there is a syntax error in the source
program, the compiler gives the user an error message to correct it. This error message is called compile-time error Message.
Once the program is compiled, there is no need to compile it later.
the compiler execute the object program to display the results on the basis of input data.
Interpreter
An interpreter, like a compiler, is a kind of translator program that reads one line of a program written in a high-level language and converts it into machine language and executes it, displaying instant results.
The difference with the compiler is that the compiler converts the entire source program into an object program and provides the latest results but the interpreter converts the source program into a line-by-line object program and displays instant results.
Interpreter translates line by line and reports the error once it encountered during the translation process. It directly executes the operations specified in the source program when the input is given by the user. It gives better error diagnostics than a compiler.
Advantages of Interpreter:
The biggest advantage of the interpreter is that it is user friendly.
It is easy to use to correct and change program errors.
The smaller the interpreter, the less space it takes up in memory.
Disadvantages of Interpreter:
Since the interpreter translates the program line-by-line, it takes more time than the compiler to translate.
Programs converted through interpreters are not completely converted into machine or object programs.
Translation is required every time the program is executed.
Assembler
Assembler is a translator program which is used to translate the assembly language code into machine language code.
Functions of assembler:
Convert mnemonic codes into equivalent machine code.
Convert symbolic operands or address to machine addresses.
Keep all instructions and data in main memory.
If there is any error in program, notify with error message.
Informing the program control after correcting all the errors in the program etc.
Device Drivers
System software that controls and monitors functioning of a specific device on computer is called device driver. Each device like printer, scanner, microphone, speaker, etc. that needs to be attached externally to the system has a specific driver associated with it. When you attach a new device, you need to install its driver so that the OS knows how it needs to be managed.
Application Software
A software that performs a single task and nothing else is called **application software**. Application software are very specialized in their function and approach to solving a problem. So a spreadsheet software can only do operations with numbers and nothing else. A hospital management software will manage hospital activities and nothing else. Here are some commonly used application software:
Word processing(word), Spreadsheet(Excel), Presentation(e.g. powerpiont), Database management (e.g. oracle), Multimedia tools(e.g. video player)
Utility Software
Application software that assist system software in doing their work is called utility software. Thus utility software is actually a cross between system software and application software. Examples of utility software include: Antivirus software, Disk management tools, File management tools, Compression tools and Backup tools.