Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
1 views

Chapter 1 Overview of Computer Sw and Programming Language_1

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views

Chapter 1 Overview of Computer Sw and Programming Language_1

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

CHAPTER 1

Overview of computer software and programming languages

1. System software
2. Application software
3. General software features and recent trends
4. Generation of programming languages
5. Categorization of high-level languages

Computer software

Software is a computer program which is a sequence of instruction, designed to direct a computer to perform
certain functions. The software enables a computer to receive input, make instruction, make decisions,
manipulate and output the data in correct order and format.

Two types of software


1. System software
2. Application software

System software

System Software is a set of programs that control and manage the operations of computer hardware. It also
helps application programs to execute correctly.

System Software are designed to control the operation and extend the processing functionalities of a
computer system. System software makes the operation of a computer more fast, effective, and secure.
Example: Operating system, programming language, Communication software, etc.

Er. Sandesh Sharan Poudel


Types of System Software
Here are the important types of System Software:

1. Operating systems: Operating system software helps you for the effective utilization of all hardware
and software components of a computer system.
2. Programming language translators: Transforms the instructions prepared by developers in a
programming language into a form that can be interpreted or compiled and executed by a computer
system.
3. Communication Software: Communication software allows us to transfer data and programs from one
computer system to another.
4. Utility programs: Utility programs are a set of programs that help users in system maintenance tasks,
and in performing tasks of routine nature.

Features of System Software


An important feature of System Software is:

• System Software is closer to the system


• Generally written in a low-level language
• The system software is difficult to design and understand
• Fast in speed
• Less interactive
• Smaller in size
• Hard to manipulate

Application software

An application is any program, or group of programs, that is designed for the end user. Applications
software (also called end-user programs) include such things as database programs, word processors, Web
browsers and spreadsheets.

Types of Application Software


Here, are some important types of Application Software

1. Word-processing software: - It makes use of a computer for creating, modifying, viewing, storing,
retrieving, and printing documents.
2. Spreadsheet software: - Spreadsheet software is a numeric data-analysis tool that allows you to
create a computerized ledger.
3. Database software: - A database software is a collection of related data that is stored and retrieved
according to user demand.

Er. Sandesh Sharan Poudel


4. Graphics software: - It allows computer systems for creating, editing, drawings, graphs, etc.
5. Education software: - Education software allows a computer to be used as a learning and teaching
tool.
6. Entertainment software: - This type of app allows a computer to be used as an entertainment tool.

Features of Application Software


An important feature of Application Software:

• Perform more specialized tasks like word processing, spreadsheets, email, photo editing, etc.
• It needs more storage space as it is bigger in size
• Easy to design and more interactive for the user
• Generally written in a high-level language

System Software Application Software


They are designed to manage the resources of the They are designed to fulfil the requirements of the
system, like memory and process management, user for performing specific tasks.
security, etc.
It is written in a low-level language like a machine A high-level language is used to write Application
or assembly language. Software.
The System Software starts running when the The Application Software starts when the user
system is powered on and runs until the system is begins, and it ends when the user stops it.
powered off.
The System Software is a general-purpose software Application Software is specific purpose software.
It is classified as a package program or customized It is classified as time-sharing, resource sharing,
program. client-server.
Installed on the computer system at the time when Installed as per user's requirements.
the operating system is installed.
Capable of running independently. Can't run independently.
Users never interact with system software as it Users interact with application software while
functions in the background. using specific applications.
System software are independent of the application Application software needs system software to run.
software
System software is crucial for the effective Application software is not extremely important
functioning of a system. for the functioning of the system.

Er. Sandesh Sharan Poudel


Generation of computer

1. First Generation of Computers


2. Second Generation of Computers
3. Third Generation of Computers
4. Fourth Generation of Computers
5. Fifth Generation of Computers

Five Generations of Computers


Generations of computers Generations timeline Evolving hardware
First generation 1940s-1950s Vacuum tube based
Second generation 1950s-1960s Transistor based
Third generation 1960s-1970s Integrated circuit based
Fourth generation 1970s-present Microprocessor based
Fifth generation The present and the future Artificial intelligence based

Generation of Programming Languages

There are five generations of programming language.

• First Generation Languages:


These are low-level languages like machine language.
• Second Generation Languages:
These are low-level assembly languages used in kernels and hardware drives.
• Third Generation Languages:
These are high-level languages like C, C++, Java, Visual Basic and JavaScript.
• Fourth Generation Languages:
These are languages that consist of statements that are similar to statements in the human language.

Er. Sandesh Sharan Poudel


These are used mainly in database programming and scripting. Example of these languages include
Perl, Python, Ruby, SQL, MATLAB(Matrix Laboratory).
• Fifth Generation Languages:
These are the programming languages that have visual tools to develop a program. Examples of
fifth generation language include Mercury, OPS5, and Prolog.

The first two generations are called low level languages. The next three generations are called high level
languages.

Computer programming language

Computer programming language, any of various languages for expressing a set of detailed instructions
for a digital computer. Such instructions can be executed directly when they are in the computer
manufacturer-specific numerical form known as machine language, after a simple substitution process when
expressed in a corresponding assembly language, or after translation from some “higher-level” language.

Types of Programming Languages


There are two types of programming languages, which can be categorized into the following ways:

1. Low level language


a) Machine language (1GL)
b) Assembly language (2GL)

2. High level language


a) Procedural-Oriented language (3GL)
Er. Sandesh Sharan Poudel
b) Problem-Oriented language (4GL)
c) Natural language (5GL)
1. Low level language

This language is the most understandable language used by computer to perform its operations. It can be
further categorized into:

a) Machine Language (1GL)


Machine language consists of strings of binary numbers (i.e. 0s and 1s) and it is the only one language, the
processor directly understands. Machine language has an Merits of very fast execution speed and efficient
use of primary memory.

Merits:
• It is directly understood by the processor so has faster execution time since the programs written in this
language need not to be translated.
• It doesn’t need larger memory.

Demerits:
• It is very difficult to program using 1GL since all the instructions are to be represented by 0s and 1s.
• Use of this language makes programming time consuming.
• It is difficult to find error and to debug.
• It can be used by experts only.

b) Assembly Language
Assembly language is also known as low-level language because to design a program programmer requires
detailed knowledge of hardware specification. This language uses mnemonics code (symbolic operation code
like ‘ADD’ for addition) in place of 0s and 1s. The program is converted into machine code by assembler.
The resulting program is referred to as an object code.

Merits:
• It is makes programming easier than 1GL since it uses mnemonics code for programming. Eg: ADD for
addition, SUB for subtraction, DIV for division, etc.
• It makes programming process faster.
• Error can be identified much easily compared to 1GL.
• It is easier to debug than machine language.

Demerits:
• Programs written in this language is not directly understandable by computer so translaters should be
used.

Er. Sandesh Sharan Poudel


• It is hardware dependent language so programmers are forced to think in terms of computer’s architecture
rather than to the problem being solved.
• Being machine dependent language, programs written in this language are very less or not protable.
• Programmers must know its mnemonics codes to perform any task.
2. High level language

Instructions of this language closely resembles to human language or English like words. It uses
mathematical notations to perform the task. The high-level language is easier to learn. It requires less time
to write and is easier to maintain the errors. The high-level language is converted into machine language by
one of the two different languages translator programs; interpreter or compiler.

High level language can be further categorized as:

a. Procedural-Oriented language (3GL)


Procedural Programming is a methodology for modelling the problem being solved, by determining the steps
and the order of those steps that must be followed in order to reach a desired outcome or specific program
state. These languages are designed to express the logic and the procedure of a problem to be solved. It
includes languages such as Pascal, COBOL, C, FORTAN, etc.

Merits:
• Because of their flexibility, procedural languages are able to solve a variety of problems.
• Programmer does not need to think in term of computer architecture which makes them focused on the
problem.
• Programs written in this language are portable.

Demerits:
• It is easier but needs higher processor and larger memory.
• It needs to be translated therefore its execution time is more.
b. Problem/Object-Oriented language (4GL)

It allows the users to specify what the output should be, without describing all the details of how the data
should be manipulated to produce the result. This is one step ahead from 3GL. These are result oriented and
include database query language.

E.g. Visual Basic, C#, PHP, etc.

The objectives of 4GL are to:

• Increase the speed of developing programs.


• Minimize user’s effort to obtain information from computer.
• Reduce errors while writing programs.

Er. Sandesh Sharan Poudel


Merits:
• Programmer need not to think about the procedure of the program. So, programming is much easier.

Demerits:
• It is easier but needs higher processor and larger memory.
• It needs to be translated therefore its execution time is more.

c. Natural language (5GL)


Natural language is still in developing stage where we could write statements that would look like normal
sentences.

Merits:
• Easy to program.
• Since, the program uses normal sentences, they are easy to understand.
• The programs designed using 5GL will have artificial intelligence (AI).
• The programs would be much more interactive and interesting.

Demerits:
• It is slower than previous generation language as it should be completely translated into binary code
which is a tedious task.
• Highly advanced and expensive electronic devices are required to run programs developed in 5GL.
Therefore, it is an expensive approach.

Compiler
A compiler is a computer program that transforms code written in a high-level programming language into
the machine code. It is a program which translates the human-readable code to a language a computer
processor understands (binary 1 and 0 bits). The computer processes the machine code to perform the
corresponding tasks.

Interpreter
An interpreter is a computer program, which coverts each high-level program statement into the machine
code. This includes source code, pre-compiled code, and scripts. Both compiler and interpreters do the same
job which is converting higher level programming language to machine code. However, a compiler will
convert the code into machine code (create an exe) before program run. Interpreters convert code into
machine code when the program is run.

Er. Sandesh Sharan Poudel


KEY DIFFERENCE
• Compiler transforms code written in a high-level programming language into the machine code, at
once, before program runs, whereas an Interpreter converts each high-level program statement, one
by one, into the machine code, during program run.
• Compiled code runs faster while interpreted code runs slower.
• Compiler displays all errors after compilation, on the other hand, the Interpreter displays errors of
each line one by one.
• Compiler is based on translation linking-loading model, whereas Interpreter is based on Interpretation
Method.
• Compiler takes an entire program whereas the Interpreter takes a single line of code.

Features of good computer program


• Portability
A program should be supported by many different computers. The program should compile and run
smoothly on different platforms. So, portability is measured by how a software application can be
transferred from one computer environment to another without failure. A program is said to be more
portable, if it is easily adopted in different computer systems.
• Maintainability
It is the process of fixing program errors and improving the program. If a program is easy to read and
understand, then its maintenance will be easier. It should also prevent unwanted works, so that the
maintenance cost in future will be low. It should also have quality to easily meet new requirements.
• Efficient
Program is said to be more efficient, if it takes less space and easily converted to machine language.
The algorithm should be more effective. The program efficiency is also high if it has high speed
during runtime execution of program.
Er. Sandesh Sharan Poudel
• Reliable
The user's actual needs will change from time-to-time, so program is said to be reliable if it works
smoothly in every version. It is measured as high reliable if it gives same performance in all simple
to complex conditions.
• Machine Independence
Program should be machine independent. Program written on one system should be able to execute
on any other without any changes. It is not system specific and provide more flexibility
• Cost Effectiveness
Cost Effectiveness is the key to measure the program quality. Cost must be measured over the life of
the program and must include both cost and human cost of producing these programs.
• Flexible
Program should be written in such a manner that it allows to add new features without changing the
existing module. It should be always ready to meet new requirements. A high flexible software is
always ready for a new world of possibilities.

Some Important IOE Questions


1. Define a programming language and also explain its type.
2. What is computer programming and computer software and also explain its type?
3. Discuss in brief about different generation of programming language.
4. Difference between source code and object code.
5. Difference Between Compiler and Interpreter
6. Distinguish between high level and low-level language.
7. What are the features of good computer program?

Assignment 1:
• Generation of computers with their characteristic.
• Programming language and its types
• Computer software and its types
• Difference Between Compiler and Interpreter
• Binary number system

Er. Sandesh Sharan Poudel

You might also like