FREE online courses on the Basics of a Computer - WHAT IS SOFTWARE -
Software software
Let us look at the broad
categories of system software available. Note that it is making system software
that requires in-depth computer expertise, not using it. System software
provides us with a number of tools to simplify our life. Of course, as always,
there are limitations in every tool, and it is the discretion of the user to
decide whether a particular tool is good enough or suitable for the purpose in
mind.
Operating system is one of the
major types of system software. The computer has many resources, and a number of
persons vying for them. The operating system acts as the administrator and
timekeeper-ensuring fair availability of resources, for purposes of billing. It
can usually accept and enforce priorities. It does routine checking of the
hardware and reports any problems.
For developing application
systems, system software provides certain tools. These are the software
languages that allow you to talk to the computer. Some require a lot of effort
from you; some make your job very simple. Languages that are close to the
computer's real language-hence though powerful are also more complicated to use
and are called lower lever languages whereas languages which are English-like or
where a single phrase can get a lot of work done are called higher-level
languages. What system software provides you is the language complete with
syntax rules, and the software to convert what is written in that language into
a machine-understandable form.
Such software that understands
what is written in a particular computer language and renders it in the form in
which a computer can understand it, is called a compiler or an interpreter. An
interpreter reads, interprets and executes the program command by command. A
compiler, on the other hand, puts the entire set of commands in a form which can
be understood by the machine in a file (sometimes an intermediate step-linking
is also needed), and this life can then be executed by a run command. An
interpreter is slower in execution, but convenient while writing and testing a
program.
For all computer languages, the
grammar rules are very exact. Unlike natural languages, even a small mistake
means the language cannot be understood. The syntax of the language has to be
adhered to.
Take for example a newspaper you
may be reading. It may say something like this -
The accused did not admit to the
fact that
He had mobbed the cycle from its
place.
You may notice that there is no
word mobbed-and guess that the word actually is moved-it may jar you a little
while reading, but you understand nevertheless. But try giving the computer like
MOBE A TO B
Instead of
MOVE A TO B
And you will get a plethora of
errors. The computer does not understand human error of this sort. It seems
silly at times but rules are rules as far as the computer is concerned.
To use any language therefore, you
have to be familiar with the set of commands it offers as well as the grammar
rules or syntax. As elsewhere, mistakes in a written set of instructions could
be on two counts. One could be in the construction or grammar and the second in
the import of the content - you may have written something which is not quite
what you intended to write. The first of these is called a syntax error and
second, a semantic error. Whereas a syntax error will halt the compiler and
hence be detected and corrected, a semantic error would reflect in program doing
something different from what is was supposed to do and will result in a 'bug,
also called a 'run-time error.
Software provided for forming
programs and developing systems is linker software that allows you to bind more
than one program together for passing data and parameters from one to another.
Besides compilers and linkers, system software also includes system utilities.
These all purpose utilities allow a lot of necessary and common activities to be
performed. The 'soft' utility for example is used for sorting data on a
particular order, such as alphabetic or ascending data order. 'Append' or 'cat'
(for concatenate) utility is used for combining data files.
Each computer family has its own
operating system. So, software written for one system does not run on another.
Every new computer introduced then put in action a new set of software
requirements - new language compilers, new application packages. However, some
standards are now emerging - this is good news because software can now be taken
from one machine to another, irrespective of the manufacturer. One such standard
operating system is DOS (available as MS DOS and PC DOS), the operating system
that is common to microcomputers - the IBM PC family and its numerous clones.
For mini computers, the standard emerging all over is UNIX. Although still there
are some differences in the UNIX offered by various manufacturers, there is a
lot of work going on to make UNIX a uniform standard across the industry for
minicomputers.
Application software is developed
by writing programs in computer languages and then using a compiler to put them
in a form that the computer can understand and execute. Each program is a set of
instructions aimed at meeting certain requirements. Put together, a set of
programs form a system. Hence the word Programmer, one who writes programs. A
programr would typically be junior to an analyst, who is the person who analyses
the overall system requirements and designs the specifications that each program
should meet. The programs to be developed for an application form a system,
which is designed after systems analysis.
Using the compiler and if
necessary the linker with the programs, an executable file is generated, which
the machine can understand and run. The program which was written is called the
source code.