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 ]
Practical Text Mining with Perl Roger Bilisoly Mon, 18 Aug 2008 04:00:00 -0000 Provides readers with the methods, algorithms, and means to perform text mining tasks This book is devoted to the fundamentals of text mining using Perl, an open-source programming tool that is freely available via the Internet (www.perl.org). It covers mining ideas from several perspectives--statistics, data mining, linguistics, and information retrieval--and provides readers with the means to successfully complete text mining tasks on their Read More... An Introduction to Linear Programming and Game Theory, 3rd Edition Paul R. Thie, Gerard E. Keough Mon, 11 Aug 2008 04:00:00 -0000 Introduction to Linear Programming and Game Theory, Third Edition includes various additions as well as improvements that have been developed over the last decade, and the most significant addition to the text involves technology. It features an introduction, discussion, and utilization of Solver, a spreadsheet software package that solves mathematical programming problems. PRT Simplex, a computer application for learning the simplex method, Read More... The Probabilistic Method, 3rd Edition Noga Alon, Joel H. Spencer Mon, 11 Aug 2008 04:00:00 -0000 This Third Edition of The Probabilistic Method reflects the most recent developments in the field while maintaining the standard of excellence that established this book as the leading reference on probabilistic methods in combinatorics. Maintaining its clear writing style, illustrative examples, and practical exercises, this new edition emphasizes methodology, enabling readers to use probabilistic techniques for solving problems in such fields Read More... Fundamentals of Queueing Theory, 4th Edition Donald Gross, John F. Shortle, James M. Thompson, Carl M. Harris Mon, 11 Aug 2008 04:00:00 -0000 Fundamentals of Queueing Theory, 4th Edition presents the analytic modeling of queues using up-to-date examples and detailed coverage of the fundamentals of analytic modeling. A fresh emphasis on telecommunications enlivens the text, and spreadsheet programs for Excel and Quattro on the related Web site will help you understand the sensitivity of waiting-line systems to parameter and environmental changes. Read More... Statistical Meta-Analysis with Applications Joachim Hartung, Guido Knapp, Bimal K. Sinha Mon, 11 Aug 2008 04:00:00 -0000 * This book combines the authors' experiences on the topic and brings out a wealth of new information relevant to the study of meta-analysis. * Most of the methods described in this book can be understood and applied with a solid master's level background in statistics. * Applications ranging from business to education to environment to health sciences in both univariate and multivariate cases are presented alongside and subservient to theory. Read More... Fundamentals of Quality Control and Improvement, 3rd Edition Amit Mitra Mon, 04 Aug 2008 04:00:00 -0000 Incorporating modern ideas, methods, and philosophies of quality management, Fundamentals of Quality Control and Improvement, Third Edition presents a quantitative approach to management-oriented techniques and enforces the integration of statistical concepts into quality assurance methods. Utilizing a sound theoretical foundation and illustrating procedural techniques through real-world examples, Read More...
Blitzwave Wavelet Library - A C++ wavelet library using blitz++ arrays. Supports wavelet decompositions of n-dimensional arrays of various numerical data types. Page includes documentation, installation details and references.