In the previous lesson we discussed about the different parts and configurations of computer. It has been mentioned that programs or instructions have to be fed to the computer to do specific task. So it is necessary to provide sequence of instructions so that your work can be done. We can divide the computer components into two major areas, namely, hardware and software. Hardware is the machine itself and its various individual equipment. It includes all mechanical, electronic and magnetic devices such as monitor, printer, electronic circuit, floppy and hard disk. In this lesson we will discuss about the other part, namely, software.
After going through this lesson you will be able to
· explain the concept of software
· distinguish between different types of software
· differentiate application software from system software
· define a language
· differentiate between different types of language
· distinguish between compiler and interpreter
3.3 WHAT IS SOFTWARE?
As you know computer cannot do anything without instructions from the user. In order to do any specific job you have to give a sequence of instructions to the computer. This set of instructions is called a computer program. Software refers to the set of computer programs, procedures that describe the programs, how they are to be used. We can say that it is the collection of programs, which increase the capabilities of the hardware. Software guides the computer at every step where to start and stop during a particular job. The process of software development is called programming.
You should keep in mind that software and hardware are complementary to each other. Both have to work together to produce meaningful result. Another important point you should know that producing software is difficult and expensive.
3.4 SOFTWARE TYPES
Computer software is normally classified into two broad categories.
· Application Software
· System software
Application Software: Application Software is a set of programs to carry out operations for a specific application. For example, payroll is an application software for an organization to produce pay slips as an output. Application software is useful for word processing, billing system, accounting, producing statistical report, analysis of numerous data in research, weather forecasting, etc. In later modules you will learn about MS WORD, Lotus 1-2-3 and dBASE III Plus. All these are application softwares.
Another example of application software is programming language. Among the programming languages COBOL (Common Business Oriented Language) is more suitable for business application whereas FORTRAN (Formula Translation) is useful for scientific application. We will discuss about languages in next section.
System Software: You know that an instruction is a set of programs that has to be fed to the computer for operation of computer system as a whole. When you switch on the computer the programs written in ROM is executed which activates different units of your computer and makes it ready for you to work on it. This set of program can be called system software. Therefore system software may be defined as a set of one or more programs designed to control the operation of computer system.
System software are general programs designed for performing tasks such as controlling all operations required to move data into and out of the computer. It communicates with printers, card reader, disk, tapes etc. monitor the use of various hardware like memory, CPU etc. Also system software are essential for the development of applications software. System Software allows application packages to be run on the computer with less time and effort. Remember that it is not possible to run application software without system software.
Development of system software is a complex task and it requires extensive knowledge of computer technology. Due to its complexity it is not developed in house. Computer manufactures build and supply this system software with the computer system. DOS, UNIX and WINDOWS are some of the widely used system software. Out of these UNIX is a multi-user operating system whereas DOS and WINDOWS are PC-based. We will discuss in detail about DOS and WINDOWS in the next module.
So without system software it is impossible to operate your computer. The following picture is shown in Fig. 3.1 relation between hardware, software and you as a user of computer system.
Fig. 3.1 Relation between hardware, software.
IN-TEXT QUESTIONS 1
1. What are program, programming and software?
2. Differentiate between system software and application software.
3. Write True or False
(a) The set of instructions given to the computer is called programming.
(b) Application Software is a set of programs to carry out operations for a specific application.
(c) UNIX is a multi-user operating system.
3.5 WHAT IS LANGUAGE?
You are aware with the term language. It is a system of communication between you and me. Some of the basic natural languages that we are familiar with are English, Hindi, Oriya etc. These are the languages used to communicate among various categories of persons. But how you will communicate with your computer. Your computer will not understand any of these natural languages for transfer of data and instruction. So there are programming languages specially developed so that you could pass your data and instructions to the computer to do specific job. You must have heard names like FORTRAN, BASIC, COBOL etc. These are programming languages. So instructions or programs are written in a particular language based on the type of job. As an example, for scientific application FORTRAN and C languages are used. On the other hand COBOL is used for business applications.
3.5.1 Programming Languages
There are two major types of programming languages. These are Low Level Languages and High Level Languages. Low Level languages are further divided in to Machine language and Assembly language.
3.5.2 Low Level Languages
The term low level means closeness to the way in which the machine has been built. Low level languages are machine oriented and require extensive knowledge of computer hardware and its configuration.
(a) Machine Language
Machine Language is the only language that is directly understood by the computer. It does not needs any translator program. We also call it machine code and it is written as strings of 1’s (one) and 0’s (zero). When this sequence of codes is fed to the computer, it recognizes the codes and converts it in to electrical signals needed to run it. For example, a program instruction may look like this:
It is not an easy language for you to learn because of its difficult to understand. It is efficient for the computer but very inefficient for programmers. It is considered to the first generation language. It is also difficult to debug the program written in this language.
The only advantage is that program of machine language run very fast because no translation program is required for the CPU.
1. It is very difficult to program in machine language. The programmer has to know details of hardware to write program.
2. The programmer has to remember a lot of codes to write a program which results in program errors.
3. It is difficult to debug the program.
(b) Assembly Language
It is the first step to improve the programming structure. You should know that computer can handle numbers and letter. Therefore some combination of letters can be used to substitute for number of machine codes.
The set of symbols and letters forms the Assembly Language and a translator program is required to translate the Assembly Language to machine language. This translator program is called `Assembler‘. It is considered to be a second-generation language.
1. The symbolic programming of Assembly Language is easier to understand and saves a lot of time and effort of the programmer.
2. It is easier to correct errors and modify program instructions.
3. Assembly Language has the same efficiency of execution as the machine level language. Because this is one-to-one translator between assembly language program and its corresponding machine language program.
1. One of the major disadvantages is that assembly language is machine dependent. A program written for one computer might not run in other computers with different hardware configuration.
IN-TEXT QUESTIONS 2
1. What is the difference between FORTRAN and COBOL?
2. Differentiate between machine language and Assembly language.
3. Write True or False
(a) Low level language and High level language are two major types of programming languages.
(b) Machine language is the only language that is indirectly understood by the computer.
(c) Assembly language is second generation language.
3.6 HIGH LEVEL LANGUAGES
You know that assembly language and machine level language require deep knowledge of computer hardware where as in higher language you have to know only the instructions in English words and logic of the problem irrespective of the type of computer you are using.
Higher level languages are simple languages that use English and mathematical symbols like +, -, %, / etc. for its program construction.
You should know that any higher level language has to be converted to machine language for the computer to understand.
Higher level languages are problem-oriented languages because the instructions are suitable for solving a particular problem. For example COBOL (Common Business Oriented Language) is mostly suitable for business oriented language where there is very little processing and huge output. There are mathematical oriented languages like FORTRAN (Formula Translation) and BASIC (Beginners All-purpose Symbolic Instruction Code) where very large processing is required.
Thus a problem oriented language designed in such a way that its instruction may be written more like the language of the problem. For example, businessmen use business term and scientists use scientific terms in their respective languages.
Advantages of High Level Languages
Higher level languages have a major advantage over machine and assembly languages that higher level languages are easy to learn and use. It is because that they are similar to the languages used by us in our day to day life.
It is a program translator that translates the instruction of a higher level language to machine language. It is called compiler because it compiles machine language instructions for every program instructions of higher level language. Thus compiler is a program translator like assembler but more sophisticated. It scans the entire program first and then translates it into machine code.
The programs written by the programmer in higher level language is called source program. After this program is converted to machine languages by the compiler it is called object program.
Higher Level Language
———————————- ® (Compile) ® Program Machine Language Program
A compiler can translate only those source programs, which have been written, in that language for which the compiler is meant for. For example FORTRAN compiler will not compile source code written in COBOL language.
Object program generated by compiler is machine dependent. It means programs compiled for one type of machine will not run in another type. Therefore every type of machine must have its personal compiler for a particular language. Machine independence is achieved by using one higher level language in different machines.
An interpreter is another type of program translator used for translating higher level language into machine language. It takes one statement of higher level languages, translate it into machine language and immediately execute it. Translation and execution are carried out for each statement. It differs from compiler, which translate the entire source program into machine code and does involve in its execution.
The advantage of interpreter compared to compiler is its fast response to changes in source program. It eliminates the need for a separate compilation after changes to each program. Interpreters are easy to write and do not require large memory in computer. The disadvantage of interpreter is that it is time consuming method because each time a statement in a program is executed then it is first translated. Thus compiled machine language program runs much faster than an interpreted program.
IN-TEXT QUESTIONS 3
1. What is the difference between interpreter and compiler?
2. Give some examples of high level language.
3. Write True or False
(a) High level languages are problem-oriented language.
(b) Object program generated by compiler is machine independent.
(c) The disadvantage of interpreter is that it is time consuming.
3.7 WHAT YOU HAVE LEARNT
In this lesson we discussed about two types of software, namely, system software and application software. System software controls the hardware part of the computer. It is designed for performing tasks such as controlling all operations required to move data into and out of the computer. It communicates with printer, card reader, disk, tapes, etc. and monitors the use of various components like memory, CPU, etc. DOS, UNIX and WINDOWS are three important system softwares. Application software is a set of programs written for specific purpose. Examples of application softwares are MS WORD, Lotus 1-2-3, COBOL, BASIC and FORTRAN. We have discussed about levels of computer language.
3.8 TERMINAL QUESTIONS
1. What is software and hardware?
2. What is computer Language?
3. Name the three different categories of computer languages.
4. What is machine language? Why is it required?
5. What are advantages and disadvantages of machine language .
6 What is assembly language? What are its advantages over machine languages?
7 What is the difference between source program and object program?
8 What is higher level languages? Why are higher level languages are easier to use.
9 What is compiler? Why is it required?
10 What is interpreter? How does it differ from compiler?
3.9 FEEDBACK TO IN-TEXT QUESTIONS
IN-TEXT QUESTIONS 1
1. Program is a set of instructions given to the computer by the user. Software is a set of computer programs and procedures that describe the programs. Programming is the process of software development.
2. Application Software is a set of programs to carry out operations for a specific application. System software is a set of programs written for performing tasks such as controlling all operations required to move data into and out of the computer.
3. (a) False b) T rue (c) True
IN-TEXT QUESTIONS 2
1. FORTRAN is used for scientific applications whereas COBOL is used for business applications.
2. Machine Languages are the only language that is directly understood by the computer. It is written in binary form that is 0 and 1. The set of symbols and letters forms the Assembly Language.
3. (a) True (b) False (c) True
IN-TEXT QUESTIONS 3
1. Both compiler and interpreter are program translators used for translating higher level language into machine language. While compiler scans the entire program first and then translates it into machine code, an Interpreter translates the program line by line.
2. FORTRAN (Formula Translation) and BASIC (Beginners All-purpose Symbolic Instruction Code) are some of the high level languages.
3. (a) True (b) False (c) True