Computer Software and Programing Language
Computer Software and Programing Language
Computer Software and Programing Language
Categories of Software
Software is categorized as (i) System Software, and (ii) Application Software
System Software - System software consists of several programs, which are directly
responsible for controlling, integrating and managing the individual hardware components of
a computer system. System software is more transparent and less noticed by the users, they
usually interact with the hardware or the applications. This software provides a programming
environment in which programmers can create applications to accommodate their needs. This
environment provides functions that are not available at the hardware level and performs the
tasks related to the execution of an application program. System software makes the computer
functional. They provide basic functionality like file management, visual display and keyboard
input and are used by application software to accomplish these functions.
Example: Operating System, device drivers, language translators, System utilities.
Operating System
It is the first layer of software loaded into computer memory when it starts up. As the first
software layer, all other software that gets loaded after it depends on it for various common
core services. The operating system ensures that different programs executing at the same time
do not interfere with each other. Example: UNIX, LINUX, Windows.
UNIT I
Device Drivers
Device drivers are system programs, which are responsible for proper functioning of devices.
Every device, whether it is a printer, monitor, mouse or keyboard has a driver program
associated with it for its proper functioning. A driver acts like a translator between the device
and program that uses the device. For example: When a user prints a document, the processor
issues a set of generic commands to the printer driver and the driver translates those commands
into the specialised instructions that the printer understand. Note that each device has its own
set of specialised commands that only its driver understands. Device driver is not a independent
program it require assistance from operating system for proper functioning of the device.
Language translators
Computers only understand a language consisting of 0’s and 1’s called machine language.
Language translators help in converting programming languages into machine language.
System Utility:System utility programs perform day-to-day tasks related to the maintenance
of the computer system. They are used to support, enhance and secure existing programs and
data in the computer system.
UNIT I
Application software
Application Software may consist of a single program, such as Microsoft’s Notepad. It may
also consist of a collection of programs, often called as software package, which work together
to accomplish a task, such as database management software.
Word Processors
A word processor is a software used to compose, format, edit and print electronic documents.
It involves not only typing, but also checking the spelling and grammar of the text ad arranging
it correctly on the page. A variety of typefaces is available for a variety of effects. It is possible
to include pictures, graphs, charts and many other things within the text of the document. It
also allows for changes in margins, fonts and colour.
Spreadsheets
One of the first commercial uses of computers was in processing payroll and other financial
records. It is designed to generate reports in the standard “spreadsheet”. A spreadsheet
application is a rectangular grid, which allows text, numbers and complex functions to be
entered into a matrix of thousands of individual cells. The spreadsheet provides sheets
containing cells each of which may contain text and/or numbers. Cells also contains equations
that calculate results from data placed in other cells or series of cells.
UNIT I
Image Editors - Image editor programs are designed specifically for capturing, creating,
editing and manipulating images. These graphic programs provide a variety of special features
for creating and altering images. It offers a host of filters and image transformation algorithms.
Some image editors also enable the user to create and superimpose layers. Most graphic
programs have the ability to import and export one or more graphic file formats. These
programs enable the user to adjust an image to improve its appearance. With image editing
software, one can darken or lighten an image, rotate it, adjust its contrast.
Example: Adobe Photoshop, Adobe Illustrator and Corel Draw.
Presentation Applications
A presentation is a means of assessment, which requires presentation providers to present their
work orally in the presence of an audience. It combines both visual and verbal elements.
Presentation software allows the user to create presentations by producing slides or handouts
for presentation of projects. It allows users to create a variety of visually appealing electronic
slides for presentations.
FEATURES OF SOFTWARE
Ease of use - The software systems and applications are becoming more and more easy to use.
In fact, software developers and system analysts go to great lengths to ensure that the products
they develop are user- friendlier than their competitor’s products.
Graphical user interface (GUI) - GUI or graphical user interface has now become the default
standard for most of the software applications. Gone are the days of the crude character-based
interfaces of UNIX and DOS application. Today’s software applications and products provide
the users with perceptive, graphical and easy-to-use interfaces. Now the users do not have to
remember the cryptic system commands or shortcut keys that were a must in the character-
based era. Now almost any task can be accomplished by a mouse click.
Multi-platform capability - Today’s software applications are not developed for just one
platform. Most of the software applications supports multiple platforms-both hardware and
software platforms. There are software applications that support hardware platforms ranging
from mainframes to PCs and different software platforms like MVS, Solaris, AIX, UNIX,
Windows and so on. For example, IBM’s DB2 Universal database is available for a variety
or hardware and software platforms.
UNIT I
Another important feature of today’s software application is that they support multiple
languages and multiple currencies. Many vendors are providing their applications in many
languages like English, Arabic, Japanese, and Chinese and so on.
Compatibility with other software - Now the competition for each market segment in the
software marketplace is rather fierce. We have many software vendors battling for the market
share in the same segment. For example, Microsoft Word 2019 supports all previous versions
of Work like Word 2010, Word 2007, Word 2003 and so on. The two features –compatibility
with earlier versions and compatibility with other products make it easier for the users, as
they can choose the application they want and still use the old files they have created using
other applications or using older versions of the same application.
Mail enabling - Mail enabled applications are designed to take advantage of on e- mail. These
are the familiar word processors, spreadsheets, and other individual desktop applications that
have e- mail features built to them. There is another class of message-centered programs that
are built specifically around e- mail functions.
Web enabling - With the ever- increasing popularity of internet and the amount of
information that is available on the net, most software applications are now web-enabled.
Web enabling helps the user in many different ways. Its use starts while the user is installing
the application. During installation, most of the applications will automatically connect to the
Internet and to the vendor’s web site and will register their products (earlier one had to fill
in a paper form and mail or fax it to the vendor).
HARDWARE SOFTWARE
1. It is the physical unit of the computer 1. It is a collection of programs to bring
the hardware system into operation
2. It has permanent structure and cannot 2. It has no permanent structure but can
be altered be altered and reused
3. It is normally affected by agent like 3. It is not affected by these agents to
dust, heat, humidity, etc. some extent
4. Hardware understands only machine 4. It is written by a well-versed
language, lower-level language or programmer and generally in higher
binary level language which is readable by
human being
5. It works with binary code, the presence 5. It is represented by the Higher-Level
or absence of Pulses as 1’s or 0’s. Languages such as BASIC, COBOL,
Etc.,
UNIT I
Developing a Program
In order to design a program a programmer must determine three basic rudiments:
▪ the instructions to be performed
▪ the order in which those instructions are to be performed
▪ the data required to perform those instructions
To perform a task using a program, a programmer has to consider various inputs of the program
along with the process, which is required to convert the input into desired output. Suppose we
want to calculate the sum of two numbers A and B, and store the sum in C; here A and B are
the inputs, addition is the process and C is the output of the program.
Programming Languages
Programming language consists of a set of characters, symbols and usage rules that allow user
to communicate with computer, just as natural languages are used for communication among
human beings.
The main reason why natural languages are not used to instruct the computer is that, firstly, the
natural languages are ambiguous, vaguely structured, and have very large vocabularies. In
contrast, computer languages have relatively few, exactly defined rules for composition of
programs, and strictly controlled vocabularies in which unknown words must be defined before
they can be used. Secondly, in case of natural languages, we can understand even while using
poor grammar and vocabulary. however, in the case of programming languages the rules are
very rigid and the programmer has to follow all the specified rules to create an accurate program
and to obtain the desired results.
➢ 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. These are used mainly in database
programming and scripting. Examples 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 languages include Mercury,
OPS5, and Prolog.
The first two generations are called low-level languages. The next three generations are called
high-level languages.
To find the largest out of three numbers A, B and C, the following algorithm can be used:
UNIT I
• Step 1: Start
• Step 2: Read 3 number say A, B and C
• Step 3: Find the largest number between A and B and store it in in MAX_AB
• Step 4: Find the largest number between MAX_AB and C and store it in MAX.
• Step 5: Display MAX
• Step 6: Stop
Algorithm to find factorial of a given number
Step 1: Start
Step 2: Declare variables n, fact, i
Step 3: Read number from User
Step 4: Initialize variable fact=1 and i=1
Step 5: Repeat Until i<=number
5.1 fact=fact*i
5.2 i=i+1
Step 6: Print fact
Step 7: Stop
Algorithm to check whether the given number is prime or not
Step 1: Start
Step 2: Initialize variables num, flag=1, j=2
Step 3: Read num from user
Step 4: If num<=1 // Any number less than 1 is not a prime number
Display "num is not a prime number"
Goto Step 7
Step 5: Else Repeat the steps until j<[(n/2)+1]
5.1 If remainder of number divide j equals to 0,
Set flag=0
Goto step 6
5.2 j=j+1
Step 6: If flag==0,
Display num+" is not prime number"
Else Display num+" n is prime number"
Step 7: Stop
UNIT I
FLOWCHART
A Flowchart is a pictorial representation of an algorithm in which the steps are drawn in the
form of different shapes of boxes and the logic flow is indicated by interconnecting arrows.
The boxes represent operations and the arrows represent the sequence in which the operations
are implemented. The primary purpose of the flowchart is to help the programmer in
understanding the logic of the program. Therefore, it is always not necessary to include all the
required steps in detail. Flowcharts outline the general procedure.
OR
• Only one line should enter a decision symbol. However, two or three floor lines (one
for each possible answer) main leave the decision symbol.
• Within standard symbols, write briefly. If necessary, use the annotation symbol to
describe data or process more clearly.
• In case of complex flow charts, connected symbols are used to reduce the number of
flow lines.
• Intersection of flow lines should be avoided to make it a more effective and better way
of representing communication.
• It is useful to test the validity of the flowchart by passing through it with normal /
unusual test data.
BENEFITS OF FLOWCHARTS
A flowchart helps to clarify how things are currently working and how they could be improved.
It also assists in finding the key elements of a process by drawing clear lines between the end
of one process and the start of next one. Developing a flowchart establishes a common
UNIT I
understanding among the participants about the process. Flowcharts helps in revealing
redundant or misplaced steps. The reasons for using flowcharts as a problem-solving tool are
given below:
1. Makes logic clear - The main advantage of using a flowchart is to plan a task is that it
provides a pictorial representation of the task, which makes the logic easier to follow.
The symbols are connected in such a way that they show the movement (flow) of
information through the system visibly. The steps and how each step is connected to
the next can be clearly seen. Even less experienced personnel can trace the actions
represented by a flowchart, i.e., flowcharts are ideal for visualizing fundamental control
structures employed in computer programming.
2. Communication - Being a graphical representation of a problem-solving logic,
flowchart is a better way of communicating the logic of a system to all concerned. The
diagrammatic representation of logic is easier to communicate to all the interested
parties as compared to actual program code as the users may not be aware of all the
programming techniques and jargons.
3. Effective analysis - With the help of a flowchart, the problem can be analyzed in an
effective way. This is because the analyzing duties of the programmers can be delegated
to other persons, who may or may not know the programming techniques, as they have
a broad idea about the logic. Being outsiders, they often tend to test and analyze the
logic in an unbiased manner.
4. Useful in coding - The flowcharts act as the guide or blueprint during the analysis and
program development phase. Once the flow charts are ready, the programmers can plan
the coding process effectively as they know where to begin and where to end, making
sure that no steps are omitted. As a result, error-free programs are developed in HLL
and that too at a faster rate.
5. Proper testing and debugging - By nature, a flowchart helps in detecting the errors in
a program, as the developers know exactly what the logic should do. Developers can
test various data for a process so that the program can handle every contingency.
6. Appropriate documentation - Flowcharts serve as a good program documentation
tool. Since normally programs are developed for novice users, they can take the help of
the program documentation to know what the program actually does and how to use the
program.
LIMITATIONS OF FLOWCHARTS
A Flowchart can be used for designing the basic concept of the program in pictorial form
but cannot be used for programming purposes some of the limitations are as follows:
1. Complex - The major disadvantage in using flowchart is that when a program is very
large, the flowchart may continue for many pages, making them hard to
follow. Flowcharts tend to get large very quickly and it is difficult to follow the
represented process. It is also very laborious to draw a flowchart for a large program.
You can very well imagine the nightmare when a flow chart is to be developed for a
program consisting of thousands of statements.
2. Costly - Drawing flowcharts are viable only if the problem-solving logic is
straightforward and not very lengthy. However, if flowcharts are to be drawn for huge
application, the time and cost factor of program development may get out of proportion,
making it a costly affair.
3. Difficult to modify - Due to its symbolic nature, any changes or modifications to a
flowchart usually require redrawing the entire logic again, and retain the complex
flowchart is not a simple task. It is not easy to draw thousands of flow lines and symbols
along with proper spacing, especially for a large Complex program.
4. No update - Usually programs are updated regularly. However, the corresponding
update of flowcharts may not take place especially in the case of large programs. As a
UNIT I
result, the logic used in the process flow chart may not match with the actual programs
logic.
Pseudocode
Pseudocode is made up of two words: pseudo and code. Pseudo means imitation and code refers
to instructions, written in a programming language. As the name suggests, pseudocode is not a
real programming code, but it models and may even look like programming code.
It is a generic way of describing an algorithm without using any specific programming
language-related notations. Pseudocode is an outline of a program, written in a form that can
be easily converted into actual programming statements.
Pseudocode uses plain English statements rather than symbols to represent the process in a
computer program. It is also known as PDL (Program Design Language), as it emphasizes
more on the design effect of a computer program or structured English, because usually
pseudocode instructions are written in normal English, but in a structured way.
Pseudocode strikes a fine balance between the understandability and informality of a natural
language like English and the precision of a computer program code. It is somewhat halfway
between English and a programming language. If an algorithm is written in English, the
description may be at such a high level that it may prove difficult to analyze the algorithm and
then to transform it into actual code. If instead, the algorithm is written in code, the programmer
has to invest a lot of time in determining the details of an algorithm, which he may choose not
to implement.
Therefore, the goal of writing pseudocode is to provide a high-level description of an algorithm,
which facilitates analysis and eventual coding, but at the same time suppresses many of the
details that are insignificant.
Pseudocode uses some keywords to denote programming processes. Some of them are as
follows:
• Input: READ, OBTAIN, GET and PROMPT
• Output: PRINT, DISPLAY and SHOW
• Compute: COMPUTE, CALCULATE and DETERMINE
• Initialize: SET and INITIALISE
• Add One: INCREMENT
It is better to catch errors at the pseudocode stage rather than connecting them in later stages
as it would prove expensive. Once the pseudocode is accepted, it is transformed into actual
program code using the vocabulary and syntax of the chosen programming language. The
benefit of pseudo code is that it enables the programmer to concentrate on the algorithms
without worrying about all the syntactic details of a particular programming language. In
fact, you can write pseudo code without even knowing what programming language you will
use for the final implementation.
Pseudocode Guidelines
Although there are no established standards for pseudocode construction, a few general
guidelines for developing pseudocodes are given as follows:
UNIT I
• Statements should be written in simple English (or any preferable natural language) and
should be programming language independent. Remember that pseudocodes only
describe the logic plan to develop a program, it is not programming.
• Steps must be understandable, and when the steps (instructions) are followed, they must
produce a solution to the specified problem. If the pseudo code is difficult for a person
to read or translate into code, then something is wrong with the level of detail you have
chosen to use.
• Pseudocodes should be concise.
• Each instruction should be written in a separate line and each statement in pseudocode
should express just one action for the computer. If the task list is properly drawn, then
in most cases each task will correspond to one line of pseudocode.
• Capitalize keywords such as READ, PRINT and so on.
• Each set of instructions is written from top to bottom, with only one entry and one exit.
• It should allow for easy transition from design to coding in the programming language.
Benefits of Pseudocode
Some of the most significant benefits of pseudocode are as follows:
• Since it is language independent, it can be used by most programmers. It allows the
developers to express the problem logic in plain natural language.
• It is easier to develop a program from a pseudocode rather than from a flowchart or
decision table. Programmers do not have to think about syntaxes; they simply have to
concentrate on the underlying logic. The focus is on the steps to solve a problem rather
than on how to use the computer language.
• The words and phrases used in pseudocode are in line with basic computer operations.
This simplifies the translation from the pseudocode to a specific programming
language.
• Unlike flowcharts, pseudocode is compact and does not tend to run over many pages.
Its simple structure and readability make it easier to modify.
Limitations of Pseudocode
Some of the most notable limitations are as follows:
• It does not provide a visual representation of the program’s logic.
• There are no accepted standards for writing pseudocodes. Programmers use their own
style of writing pseudocode.
• It is quite difficult for the beginners to write pseudocode as compared to drawing a
flowchart.