Thursday 14 April 2016

Computer software

The various programs by which a computer controls aspects of its operations, such as those
for translating data from one form to another.

Computer software (or simply software) refers to any of the various programs by which a
computer controls aspects of its operations, such as those for translating data from one form to
another, as contrasted with hardware, which is the physical equipment comprising the installation.
The term is roughly synonymous with computer program but is more generic in scope. In most
computers, the moment-to-moment control of the machine resides in a special software program
called an operating system, or supervisor. Other forms of software include assemblers and
compilers for programming languages and applications for business and home use (see computer
program). Software is of great importance; the usefulness of a highly sophisticated array of
hardware can be severely compromised by the lack of adequate software.

The term "software" was first used in this sense by John W. Tukey in 1957. In computer
science and software engineering, computer software is all information processed by computer
systems, programs and data. The concept of reading different sequences of instructions into the
memory of a device to control computations was invented by Charles Babbage as part of his
difference engine. The theory that is the basis for most modern software was first proposed by Alan
Turing in an essay.

Relationship to hardware

Computer software is so called in contrast to computer hardware, which encompasses the
physical interconnections and devices required to store and execute (or run) the software. In
computers, software is loaded into RAM and executed in the central processing unit. At the lowest
level, software consists of a machine language specific to an individual processor. A machine
language consists of groups of binary values (which may be represented by octal or hexadecimal
numerals) signifying processor instructions (object code), which change the state of the computer
from its preceding state. Software is an ordered sequence of instructions for changing the state of
the computer hardware in a particular sequence. It is generally written in high-level programming
languages that are easier and more efficient for humans to use (closer to natural language) than
machine language. High-level languages are compiled or interpreted into machine language object
code. Software may also be written in an assembly language, essentially, a mnemonic
representation of a machine language using a natural language alphabet. Assembly language must
be assembled into object code via an assembler.

Relationship to data

Software has historically been considered an intermediary between electronic hardware and
data, which later the hardware processes according to the sequence of instructions defined by the
software. As computational math becomes increasingly complex, the distinction between software
and data becomes less precise. Data has generally been considered as either the output or input of
executed software. However, data is not the only possible output or input. For example, (system)
configuration information may also be considered input, although not necessarily considered data
(and certainly not applications data). The output of a particular piece of executed software may be
the input for another executed piece of software. Therefore, software may be considered an
interface between hardware, data, and/or (other) software.

No comments:

Post a Comment

Popular Posts