Lecture
Handout
Introduction
to programming
Lecture
No. 2
Reading Material
Deitel
& Deitel – C++ How to Program chapter
1
1.2,
1.3, 1.4, 1.6, 1.7
1.11,
1.12, 1.13
Summary
o Software
Categories
o Application
Software
o
Software
Categories
Software
is categorized into two main categories
System
Software
The
system software controls the computer. It communicates with computer’s hardware
(key
board, mouse, modem, sound card etc) and controls different aspects of
operations.
Sub
categories of system software are:
o Operating system
o Device drivers
o Utilities
Operating system
An
operating system (sometimes abbreviated as "OS") is the program that
manages all
the
other programs in a computer. It is a
integrated collection of routines that service the
sequencing
and processing of programs by a computer.
Note: An
operating system may
provide
many services, such as resource allocation, scheduling, input/output
control, and
data
management.
Definition
“Operating
system is the software responsible for controlling the allocation and usage of
hardware
resources
such as memory, central processing unit (CPU) time, disk space, and peripheral
devices. The operating
system is the foundation on which applications, such as word processing and
spreadsheet
programs,
are built. (Microsoft)”
Device drivers
The
device driver software is used to communicate between the devices and the
computer.
We have monitor, keyboard and mouse attached to almost all PC’s; if we look
at
the properties of these devices we will see that the operating system has
installed
special
software to control these devices. This piece of software is called device
driver
software.
When we attach a new device with the computer, we need software to
communicate
with this device. These kinds of software are known as device drivers e.g.
CD
Rom driver, Sound Card driver and Modem driver. Normally manufacturer of the
device
provide the device driver software with the device. For scanners to work
properly
with
the computers we install the device driver of the scanner. Nowadays if you have
seen
a scanner, it comes with TWAIN Drivers. TWAIN stands for Technology Without
An
Interesting Name.
Utility Software
Utility
software is a program that performs a very specific task, usually related to
managing
system resources. You would have noticed a utility of Disk Compression.
Whenever
you write a file and save it to the disk, Compression Utility compresses the
file
(reduce
the file size) and write it to the disk and when you request this file from the
disk,
the
compression utility uncompressed the file and shows its contents. Similarly
there is
another
utility, Disk Defragmentation which is used to defragment the disk. The data is
stored
on the disks in chunks, so if we are using several files and are making changes
to
these
files then the different portions of file are saved on different locations on
the disk.
These
chunks are linked and the operating system knows how to read the contents of
file
from
the disk combining all the chunks. Similarly when we delete a file then the
place
where
that file was stored on the disk is emptied and is available now to store other
files.
As
the time goes on, we have a lot of empty and used pieces on the disk. In such
situation
we
say that the disk is fragmented now. If we remove this fragmentation the chunks
of
data
on the disk will be stored close to each other and thus reading of data will be
faster.
For
the purpose of removing fragmentation on the disk the Defragmentation utility
is
used.
The
compilers and interpreters also belong to the System Software category.
Application software
A
program or group of programs designed for end users. For
example a program for
Accounting,
Payroll, Inventory Control System, and guided system for planes. GPS
(global
positioning system), another application software, is being used in vehicles,
which
through satellite determines the geographical position of the vehicle.
History of C language
The
C language was developed in late 60’s and early 70’s, in Bell Laboratories. In
those
days
BCPL and B languages were developed there. The BCPL language was developed
in
1967 by Martin Richards as a language for writing operating systems software
and
compilers.
In 1970 Ken Thompson used B language to create early versions of the UNIX
operating
system at Bell Laboratories. Thus both the languages were being used to
develop
various system software even compilers. Both BCPL and B were ‘type less’
languages,
every data item occupied one ‘word’ in memory and the burden of treating a
data
item as a whole number or real number, for example was the responsibility of
the
programmer.
Dennis
Ritchie developed a general purpose language, called C language, by using
different
features of BCPL and B languages. C uses many important concepts of BCPL
and
B while adding data typing and other features. In the start C became widely
known as
the
development language of the UNIX operating system, and the UNIX operating
system
was written by using this C language. The C language is so powerful that the
compiler
of C and other various operating systems are written in C. C language has
almost
unlimited powers to do with computers. You can program to turn on or off any
device
of computer. You can do a lot to hard disk and other peripherals. It is very
easy to
write
a program in C that stops the running of computer. So be careful while
programming
in C.
The
C language and UNIX operating system widely spread in educational and research
institutions.
There was C and UNIX everywhere. Due to the wide spread of C, different
researchers
started to add their features in the language. And thus different variations in
C
came
into existence. Many universities developed their own C by adding different
features
to the C language developed by Ritchie. These variations led to the need of a
standard
version of C. In 1983 a technical committee was created under the American
National
Standards Committee on Computer and Information Processing to provide an
unambiguous
and machine-independent definition of the language. In 1989 the standard
was
approved. ANSI cooperated with the International Standard Organization (ISO) to
standardize
C worldwide.
Tools of the trade
As
programmer we need different tools to develop a program. These tools are needed
for
the
life cycle of programs
Editors
First
of all we need a tool for writing the code of a program. For this purpose we
used
Editors
in which we write our code. We can use word processor too for this, but word
processors
have many other features like bold the text, italic, coloring the text etc, so
when
we save a file written in a word processor, lot of other information including
the
text
is saved on the disk. For programming purposes we don’t need these things we
only
need
simple text. Text editors are such editors which save only the text which we
type. So
for
programming we will be using a text editor. Compiler and Interpreter
As
we write the code in English and we know that computers can understand only 0s
and
1s.
So we need a translator which translates the code of our program into machine
language.
There are two kinds of translators which are known as Interpreter and
Compilers.
These translators translate our program which is written in C-Language into
Machine
language. Interpreters translates the program line by line meaning it reads one
line
of program and translates it, then it reads second line, translate it and so
on. The
benefit
of it is that we get the errors as we go along and it is very easy to correct
the
errors.
The drawback of the interpreter is that the program executes slowly as the
interpreter
translates the program line by line. Another drawback is that as interpreters
are
reading
the program line by line so they cannot get the overall picture of the program
hence
cannot optimize the program making it efficient.
Compilers
also translate the English like language (Code written in C) into a language
(Machine
language) which computers can understand. The Compiler read the whole
program
and translates it into machine language completely. The difference between
interpreter
and compiler is that compiler will stop translating if it finds an error and
there
will
be no executable code generated whereas Interpreter will execute all the lines
before
error
and will stop at the line which contains the error. So Compiler needs
syntactically
correct
program to produce an executable code. We will be using compiler in our course
Debugger
Another
important tool is Debugger. Every programmer should be familiar with it.
Debugger
is used to debug the program i.e. to correct the logical errors. Using debugger
we
can control our program while it is running. We can stop the execution of our
program
at some point and can check the values in different variables, can change these
values
etc. In this way we can trace the logical errors in our program and can see
whether
our
program is producing the correct results. This tool is very powerful, so it is
complex
too
Linker
Most
of the time our program is using different routines and functions that are
located in
different
files, hence it needs the executable code of those routines/functions. Linker
is a
tool
which performs this job, it checks our program and includes all those routines
or
functions
which we are using in our program to make a standalone executable code and
this
process is called Linking
Loader
After
a executable program is linked and saved on the disk and it is ready for
execution.
We
need another process which loads the program into memory and then instruct the
processor
to start the execution of the program from the first instruction (the starting
point
of every C program is from the main function). This processor is known as
loader.
Post a Comment
Don't Forget To Join My FB Group VU Vicky
THANK YOU :)