0% found this document useful (0 votes)
2 views6 pages

Chapter 1

The document provides an overview of computer software and programming languages, detailing the types of software, including system and application software, as well as their classifications. It explains the concept of programming, the characteristics of a good program, and the evolution of programming languages through five generations. Additionally, it discusses high-level and low-level languages, language processors, and the distinctions between compilers and interpreters.

Uploaded by

siddiquieayan786
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views6 pages

Chapter 1

The document provides an overview of computer software and programming languages, detailing the types of software, including system and application software, as well as their classifications. It explains the concept of programming, the characteristics of a good program, and the evolution of programming languages through five generations. Additionally, it discusses high-level and low-level languages, language processors, and the distinctions between compilers and interpreters.

Uploaded by

siddiquieayan786
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

CHAPTER - 1

OVERVIEW OF COMPUTER SOFTWARE AND


PROGRAMMING LANGUAGES
1.1 Software and its Types
Software is defined as the set of coded commands or instructions
that tells the computer what to do. It is a part of computer system that
instruct the hardware to perform meaningful tasks. Without software,
most computers would be useless. It is the soul of the computer.
Computer based solution of any problem is know as software.
There are two types of software:
a. System software
System software is a type of computer program that is designed to
run a computer's hardware and application [Link] helps to run
the computer system and is directly responsible for controlling
integrating and managing the individual hardware components of a
computer system. E.g., operating systems, device drivers, etc.
b. Application software
Application software is software designed to perform a group of
coordinated functions, tasks, or activities for the benefit of the
[Link] helps to perform the user's desired task/ application. They
are specially designed and developed for end users. eg. Microsoft
office, different games, student management system, different
antivirus software. Application software can be classified into
following categories:
i. Tailored software (custom software): Tailored software is
software that is specially developed for some specific
organization or other user. E.g., student management
system,banking software etc.
ii. Packaged software: Packaged software is a collection of
programs that perform similar functions or have similar
features. For example, Microsoft Office includes multiple
applications such as Excel, Word, and PowerPoint. Video and
audio editing software may also be available as packaged
software, used for editing music and video files used in a
movie.

OVERVIEW OF COMPUTER SOFTWARE AND PROGRAMMING LANGUAGES |1|


iii. Utility software: Utility software is software designed to
help to analyze, configure, optimize or maintain a computer
system. It is used to support the computer infrastructure - in
contrast to other application software, which is aimed at
directly performing tasks that benefit ordinary users.
Examples: Antivirus, disk manager, etc.

1.2 Computer Program and Programming Languages


A program is a set of instructions or commands that is arranged in
a sequence to guide a computer to find solution for the given problem. A
program is like a recipe. It contains a list of ingredients (called variables)
and a list of direction (called statements) that tell the computer what to do
with the variables. It is the basic unit of a software.
The process of developing and implementing computer programs
to solve a problem is known as computer programming. There are various
programming languages used for programming purpose. Programming
languages are the standard communication technique between user and
computer.

Features of a Good Computer Program


Characteristics of a good program whatever programming
language is used are as follows:
i. Accuracy: Every program must give the correct o/p for correct
input. Otherwise, no program can be useful.
ii. Efficiency: A good program outputs good result with minimum
memory use at short period of time.
iii. Generality: Program written should be more general in possible
limits. It should work for different variations of inputs.
iv. Modularity: While developing a program, we should divide the
problem into different modules if possible, it can be accomplished
using functions in C.
v. Clarity: The logic implemented in a program should be readable
and intelligible, so that it can be clearly understood with little
effort.
vi. Simplicity: There may be a number of ways to develop a program
but it is better to choose the simplest one.

|2|
1.3 Generation of Programming Languages
It represent major steps or "generations" in the evolution of
programming languages. The five generations of programming languages
include:
 Machine language (first generation)
 Assembly language (second generation)
 Procedure oriented language (third generation)
 Problem oriented language (fourth generation)
 Natural language (fifth generation)
i. First Generation: Machine Language
It was used to perform the first stored program on computer
systems. This is the lowest level of programming language. The
machine language is the only language that the computer
understands. All the commands and data values are expressed
using 1 and 0s,corresponding to the ‘on’ and ‘off’ electrical states
in a computer. It is very difficult to program in machine language
but the execution is fast.
ii. Second Generation: Assembly Language
It is symbolic programming language that use symbolic notations
known as mnemonic codes [such as ADD,SUB etc] to represent
machine-language instructions. These languages are closely
connected to machine language and the internal architecture of the
computer system on which they are used. It is comparatively easier
to program than machine language but we have to convert the
assembly language program to machine language for execution.
iii. Third Generation: Procedure Oriented Language
It is a refinement of the second-generation programming language.
This includes features like improved support for aggregate data
types, and expressing concepts in a way that favours the
programmer, not the computer. They are more English-Like
languages. They are designed to express the logic or the procedure
of the program. Programming approach is focused on "How To
Do". ForTran, C, C++, PASCAL, Java, etc are some third
generation languages.
iv. Fourth Generation: Problem Oriented Language
Programming approach is focused on "What To Do" rather than
"How To Do". Programmers define only what they want the

OVERVIEW OF COMPUTER SOFTWARE AND PROGRAMMING LANGUAGES |3|


computer to do, without supplying all the details of how it has to
be done. They are especially focused on database management
system. SQL, QBE, EXPRESS are some 4GLs.
v. Fifth Generation: Natural Languages
5GLs are centered on solving problems using constraints given to
the program, rather than using an algorithm written by the
programmer. They are widely used in artificial intelligence
research and expert system. Typical example of a 5GL include
PROLOG, LISP, OPS5, Mercury. They are still in the
development stages but they promise to have profound effect,
particularly in the areas of artificial intelligence & expert systems.
They are designed to allow the computer to become "smarter" to
actually simulate the process by remembering and improving upon
earlier information.

1.4 High Level and Low Level Language


Both high level language and low level language are the
programming languages’s [Link] main difference between high level
language and low level language is that, programmers can easily
understand or interpret or compile the high level language in comparison
of machine. On the other hand, Machine can easily understand the low
level language in comparison of human beings.
The differences between high level and low level language are:
High Level Language Low Level Language
1. High level language is close to 1. Low level language is close to
human machine
2. One doesn’t require the 2. One requires the hardware
hardware information to information to program in high
program in high level language level language
3. Compiler and interpreter are 3. Assembler is used to translate
used to translate high level high level language into
language into machine code. machine code.
e.g., C, C++, Java e.g., Assembly language
4. Third generation language and 4. Machine level language and
above are high level languages assembly language are low level
language

|4|
1.5 Language Processor and its Types
A computer understands instructions in machine code, i.e. in the
form of 0s and 1s. It is a tedious task to write a computer program directly
in machine code. The programs are written mostly in high level languages
like Java, C++, Python, etc. and are called source code. These source
code cannot be executed directly by the computer and must be converted
into machine language to be executed. Hence, a special translator system
software is used to translate the program written in high-level language
into machine code is called language processor and the program after
translated into machine code is object program/object code.
The language processors can be any of the following three types:
1. Compiler
The language processor that reads the complete source program
written in high level language as a whole in one go and translates it
into an equivalent program in machine language is called as a
compiler.
Example: C, C++, C#, Java
In a compiler, the source code is translated to object code
successfully if it is free of errors. The compiler specifies the errors
at the end of compilation with line numbers when there are any
errors in the source code. The errors must be removed before the
compiler can successfully recompile the source code again.
2. Assembler
The assembler is used to translate the program written in assembly
language into machine code. The source program is a input of
assembler that contains assembly language instructions. The output
generated by assembler is the object code or machine code
understandable by the computer.
3. Interpreter –
The translation of single statement of source program into machine
code is done by language processor and executes it immediately
before moving on to the next line is called an interpreter. If there
is an error in the statement, the interpreter terminates its translating
process at that statement and displays an error message. The
interpreter moves on to the next line for execution only after
removal of the error. An Interpreter directly executes instructions
written in a programming or scripting language without previously
converting them to an object code or machine code.

OVERVIEW OF COMPUTER SOFTWARE AND PROGRAMMING LANGUAGES |5|


Example: Perl, Python, Matlab.

Differences between compiler and interpreter:


Compiler Interpreter
A compiler is a program which coverts Interpreter takes a source
the entire source code of a programming program and runs it line by
language into executable machine code line, translating each line as it
for a CPU. comes to it.
Compiler takes large amount of time to Interpreter takes less amount of
analyze the entire source code but the time to analyze the source code
overall execution time of the program is but the overall execution time
comparatively faster. of the program is slower.
Compiler generates the error message Its debugging is easier as it
only after scanning the whole program, continues translating the
so debugging is comparatively hard as program until the error is met
the error can be present any where in the
program.
Generates intermediate object code. No intermediate object code is
generated.
Examples: C, C++, Java Examples:Python, Perl,BASIC

Why is C called middle-level language?


 C is called middle-level language because it actually binds the gap
between a machine-level language and high-level language.
i. A user can use C language to do system programming (for
writing operating system) as well as application programming
(for example, generating menu driven customer billing
system ).
ii. C programming supports inline assembly language programs.
Using inline assembly language feature in C, we can directly
access system registers.
iii. C programming is used to access memory directly using
pointer.
iv. C programming also supports features of high-level
language.
v. C programming is more user friendly as compared to
previous languages.

|6|

You might also like