Computer software
Computer software or just software is a general term used to describe a
collection of computer programs, procedures and documentation that perform
some tasks on a computer system. It plays an important role in
computer-based information systems because hardware would be useless without
it. Software comprises the instructions that tell the hardware what to do.
This term includes application software such as word processors which
perform productive tasks for users, system software such as operating
systems, which interface with hardware to provide the necessary services for
application software, and middleware which controls and co-ordinates
distributed systems.
Applications software is a collection of related programs designed to
perform a specific task—to solve a particular problem for the user. Typical
applications include: industrial automation, business software, educational
software, medical software, databases, and computer games. Businesses are
probably the biggest users of application software, but almost every field
of human activity now uses some form of application software.
Systems software starts up (boots) the computer and functions as the
principal coordinator of all the hardware components and applications
software programs. It includes: operating systems, device drivers,
diagnostic tools, servers, windowing systems, utilities and more. The
purpose of systems software is to insulate the applications programmer as
much as possible from the details of the particular computer complex being
used, especially memory and other hardware features, and such as accessory
devices as communications, printers, readers, displays, keyboards, etc.
Middleware controls and co-ordinates distributed systems. The software
consists of a set of enabling services that allow multiple processes running
on one or more machines to interact across a network
The six major categories of applications software are general business
management, industry-specific, special disciplines, education, personal/home
management, and general- purpose for the user.
Software includes websites, programs, video games etc. that are coded by
programming languages like C, C++, etc.
Computer software encompasses an extremely wide array of products and
technologies developed using different techniques like programming languages,
scripting languages etc. Software usually runs on a software platform which
can either be provided by the operating System or by OS independent
platforms like Java and .NET. Software written for one platform is usually
unable to run on other platforms so that for instance, Microsoft Windows
software will not be able to run on Mac OS because of the differences
relating to the platforms and their own standards. These applications can
work using software porting, interpreters or re-writing the source code for
that platform.
At the lowest level, software consists of a machine language specific to an
individual processor. A machine language consists of groups of binary values
signifying processor instructions 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 usually 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.