SOFTWARE

Software Fundamentals
Software is a general term used to describe any set of programs that controls the operation of a computer
system. Hardware and software work very closely together, and all computer systems need both
hardware and software to be useful.
1. Algorithms
An algorithm is a precise set of instructions that describes how to perform a specific task. It describes the
environment and sequence/logical flow of how to go about accomplishing the task. A simple and
common example of an algorithm is a recipe. A recipe details what ingredients, equipment (environment)
and cooking steps (sequence and logical flow) one needs to follow in order to accomplish the task of
preparing a meal.
When writing an algorithm that is aimed at controlling a computer system (rather than making lunch), one
needs to first specify the environment: the possible input data, their nature and location or source (what
input or storage devices will this data be accessed from), and possibly, the relevant output devices. Also,
one needs to specify the sequence and logical flow of the steps required to perform the required
processing of this data.
Algorithms are a fundamental first step towards getting computers to do what one wants. Computer
hardware is extremely fast, but is not ‘intelligent’. In other words, one needs to tell a computer precisely
what to do; unlike a human being, it can’t figure things out for itself.
However, not only do we need to tell a computer what to do, and how to do it, but we also need to
describe it in a language that the computer understands. This is where programs, programming
languages and compilers become relevant.
2. Programs and programming languages
The CPU of a computer understands a fairly limited set of very simple instructions, involving comparisons,
arithmetic and data transfer (recall that these are called machine-level instructions). Also, these
instructions have to be represented in binary. It is tremendously tedious to have to specify everything in
terms of these binary coded machine level instructions. In the early days of computers, this was how
people controlled computers; however, they soon started creating higher-level (i.e. more human-language
like) languages, specifying their instructions in these languages, and then translating these instructions
automatically into binary-coded machine level instructions that the CPU could understand.
In general, a programming language is a language that is used to code an algorithm in a way that a
computer can eventually understand. Most programming languages are somewhat similar to human
language (why?), but are more precise, structured and unambiguous. Just as there are different human
languages, there are also a variety of programming languages. Popular programming languages include

No comments:

Post a Comment