Computer software (or simply software) is the programs and procedures that enable a computer to perform a specific task, as opposed to the physical components of the system (hardware). This includes application software such as a word processor, which enables a user to perform a task, and system software such as an operating system, which enables other software to run properly, by interfacing with hardware and with other 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 his 1935 essay Computable numbers with an application to the Entscheidungsproblem. Hally, Mike (2005:79). Electronic brains/Stories from the dawn of the computer age. British Broadcasting Corporation and Granta Books, London. ISBN 1-86-207663-4.
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 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.
More on [ Computer software ]
Checklist Investor - Individual investors can work through checklists that are generated by the software according to different investment strategies.
Meta Description: [ Stock Market Investment Software for Intelligent Investing in Stocks. Checklist Investor contains the Buffett, CANSLIM, Graham, and Lynch stock research strategy. ]
Fullerton Software - Performs fundamental analysis on stocks and evaluates quantitative and qualitative factors to determine the quality of a stock purchase.
IC-FinEval - Risk assessment and decision making software including IC-MinEval for the financial evaluation of mineral projects.
Meta Description: [ IC-FinEval provide reliable and easy to use financial evaluation, risk assessment and decision making software including IC-MinEval for mining projects. ]
Landlord Software - Aanalyzes real estate investments and rental property cash flow, profitability, and rate of return.
Meta Description: [ Landlord software for U.S. and Canada real estate investing and property management. ]
Spredgar Software - Microsoft Excel addin that creates financial ratios and graphs from EDGAR 10-K and 10-Q filings for quick study of Securities and Exchange Commission filing data.
Meta Description: [ SPREDGAR computes financial ratios, industry comparable ratios, and cash flow. ]