|
|||||
CS201
Introduction to Programming
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
Software
Categories
o
o System
Software
o Application
Software
History
of C language
o
Development
Environment of `C'
o
Software
Categories
Software
is categorized into two main
categories
System
Software
o
Application
Software
o
Page
7
CS201
Introduction to Programming
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
Page
8
CS201
Introduction to Programming
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
Page
9
CS201
Introduction to Programming
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
Page
10
CS201
Introduction to Programming
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.
Page
11
CS201
Introduction to Programming
Linker
and loaders are the
part of development environment. These
are part of system
software.
The
following figure represents a graphical
explanation of all the steps
involved in
writing
and executing a program.
Editor
Disk
Preprocessor
program
processes
the code.
Preprocessor
Disk
Compiler
creates object
code
and stores
Compiler
Disk
it on
disk.
Linker
Linker
links the object
Disk
code
with the libraries
Primary
Memory
Loader
Loader
puts program
in
memory.
Disk
.
.
.
.
.
.
Primary
Memory
CPU
takes each
instruction
and
CPU
executes
it, possibly
storing new
data
values as
the
program
executes.
.
.
.
.
.
.
Page
12
Table of Contents:
|
|||||