What is a computer? – Computer software
A computer* is an inanimate device that has no intelligence of its own and must be supplied with
instructions* so that it knows what to do and how and when to do it. Colloquially, the totality of these instructions is calledsoftware.* The importance of software cannot be overestimated. You might have what most people consider the "best" computer sitting on your desk in front of you; however, without software to "feed" it, the computer will do nothing more than take up space.
Software is made up of a group of relatedprograms,* each of which consists of a given set ofinstructionsor statements that perform very specific processing* tasks. Software can generally be divided into three categories: systems software, applications software,* and software development tools.
The systems software called the operating system consists of programs designed to function as the principalinterfacebetween all the hardware* and software components, the currently running application programs, and the user(s) of the computer. In many ways, systems software functions in the same way as a businessmanagerwho tells and instructs the "hardware" and "software" components of the business what to do and how and when to do it while coordinating complex business tasks, and communicating with the "external" actors of business life. Applications software is a collection of related programs designed primarily to be carried out by a computer to satisfy the users' specificneeds. Those programs are usuallycreatedby software development tools. (cf. Stallings – Hutchinson – Sawyer: Computers. The User Perspective. 8-9.⇒)
In general, software refers to a certain set of computer programs that can be executed by a computer system. Specifically, the actual or running software of a computer system consists of a system of mutually cooperating programs, including e.g.
- the operating system (e.g. Microsoft Windows, Unix etc.), which is a kind of system software with basic functions that are essential for the operation of the computer. The operating system is usually called the main software of the computer system which
– manages the computer's hardware and software resources,
– offers common services for other programs,
– provides a platform for running different applications,
– enables the users to communicate with the computer,
– etc.;- utility software (e.g. Total Commander, Notepad, Paint, Media player etc.);
- application software (e.g. Microsoft Office, Google Chrome or Mozilla Firefox etc.).
A computer program is a sequence of instructions or statements that can be executed by the computer in a well-defined order so as to produce a desired output by processing the input and the stored data.
- Programs formally describe ("encode") and implement algorithms in a formal notation by way of one of the programming languages supported by the software of the computer system.
- An algorithm is a prescribed set of well-defined instructions or statements for the solution of a given problem in a finite number of steps (e.g. the performance of a calculation). The instructions of the algorithm are usually encoded in a selected programming language.
- A programming language is a formal notation for the precise description of algorithms in a form of computer programs. Programming languages are artificial languages in which the syntax (or grammar) and semantics are strictly defined.
There are basicly three types of programming languages which enable the programmers to write the codes of programs at different levels.
- A program written at the machine-code level is a sequence of instructions. An instruction is the description of an operation that is to be performed by a computer.
- An instruction set is the set of instructions available in a particular computer. It contains e.g. the operation codes and the permitted addressing schemes supported by a given (micro)processor.
- A program written in an assembly language allows the programmer to use alphabetic operation codes and other symbolic tools (e.g. symbolic names for the registers, addresses, labels for the instructions etc.) instead of using machine codes and physical addresses for each instruction.
- A program written in a high-level language is constructed from statements. Each statement is composed of a predefined sequence of given operations to be performed. Some dedicated sequences of statements (called usually "functions") can be named so that they can be referred to by their name anywhere within the program.
In general, the terms 'algorithm' and 'operation' are closely related to the mathematical concept of the function. Particularly, an operation is a function from the m-ary Cartesian product SxSx...xS into S itself, where 'm' is a natural number (usually 1 or 2, called a unary or binary operation, respectively), and 'S' is some set specific to the function.⇒
Here, the term Cartesian product is central. The Cartesian product or cross product is a set of ordered n-tuples the elements of which are respectively members of the sequence of given sets.⇒ For example, the Cartesian product AxBxC is the set of all triples (a,b,c) where 'a' is a member or element of the set 'A', 'b' is a member of 'B', and 'c' is a member of 'C'. (Note that if the sets A, B and C are finite, and the number of elements of the sets are |A|=q, |B|=r, and |C|=s, respectively, then there are exactly q*r*s triples in the Cartesian product AxBxC.)