|
Computer software is a general term used to describe a collection of computer programs, procedures and documentation that perform some task on a computer system.[1] The 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
Computer software is so called to contrast with 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 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 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
Hardware :
System software helps run the computer hardware and computer system. 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.
* Programming software usually provides tools to assist a programmer in writing computer programs and software using different
programming languages in a more convenient way. The tools include text editors, compilers, interpreters, linkers, debuggers, and so on. An
Integrated development environment (IDE) merges those tools into a software bundle, and a programmer may not need to type multiple commands
for compiling, interpreter, debugging, tracing, and etc., because the IDE usually has an advanced graphical user interface, or GUI.
* Application software allows end users to accomplish one or more specific (non-computer related) tasks. 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
A program may not be sufficiently complete for execution by a computer. In particular, it may require additional software from a software
library in order to be complete. Such a library may include software components used by stand-alone programs, but which cannot work on their
own.
Thus, programs may include standard routines that are common to many programs, extracted from these libraries. Libraries may also
include 'stand-alone' programs
|
|