Search this site with Google

The instructions that cause a system to perform an action. A strict definition would be a set of data that is interpreted within a "Universal Machine".

Any computer based system can be thought of as containing three main elements:

  • Hardware: the static physical components
  • Software: the customisable "instructions" that define behaviour
  • Information Content: the data that determines the current state

In fact this metaphor quickly breaks down, since some elements of the hardware are controlled by "built-in" software (so called "firmware"). In addition the data can control which behaviours occur, so the boundary between software and data is also debatable.

Alan Turing's 1935 paper "Computable numbers with an application to the Entscheidungsproblem" first introduced the idea of a "Universal Machine" that, with a suitable set of instructions, could perform any calculation. This description distinguished between the Hardware (the "Universal Machine") and the Software (a combination of the instructions and data). Later work has shown that all modern computers are equivalent to Turing's Universal Machine, which shows a number of constraints that software cannot overcome. For example there are pieces of software that cannot be written, such as an application to prove that two ontologies are the same.

The term software is often applied to any set of data that causes a system to perform a function. For example video and audio data files are commonly referred to as software.

Links to this page

The following pages link to here: Application Software, ASCII, Computer Science, Hardware, Information Content, Killer App, Program, Software Development, System Software, Uses for IA

Comment on the contents of the 'Software' page
Subject: Email to Reply To (optional):