30-01-2015, 13:22PrintA computer program or briefly programme is to the rules of a certain programming language a being enough sequence of instructions (consisting of declarations and instructions) to edit certain functions or duties or problems with the help of a computer or to solve.
A computer program belongs to the software of a computer. It is mostly given in a data carrier as a compiled program file, often in the so-called machine code which is loaded for the implementation in the main memory of the computer. The programme becomes as a sequence of machines, i.e. to processor commands of the processors of the computer has executed and with it. Under‚ computer program‘ the source program of the programme from which in the course of the software development the compiled code originates is also understood.
A program file which exists of machine code contains commands from the linguistic treasure of the processor, i.e. commands which are "clear" for the processor and are compiled with it. One designates the production of such a programme in general programming or also implementing. In the beginnings of the programming it was programmed – up to the development by programming languages – exclusively in machine code. The program text or source program which the programmer has written into programming language passes of a sequence from (mostly of the English language taken) instructions which are clearer for the programmer generally (e.g.: ADD, SUB, AND, OR etc.) as the machine code. Later the advanced languages complemented loops, Abstraction and modular construction.
The files in which the program code is saved are mostly marked by a file ending. Source program files point with it to the used language .c: a programme formulated in C). It can be edited generally with an easy text editor. A file which contains against it machine code owns none or an ending specific for operating system which points merely to its practicability (.exe in MS-DOS and Windows; with unixoiden systems). It can be often called as a command in a terminal (prompt). See also software library.
So that a programme written in a Hochsprache on a processor can be executed, it must be translated into machine code. An instruction of an advanced language is translated generally into several computer instructions. One calls the translation process Compilierung. To generate the machine code from the source program, an assembler, compiler or interpreter is required. This translates the instructions of the programming language which should be clear and editable for human users, in the semantically corresponding commands of the machine language of the used computer.
The instructions which represent a concrete solution way (as a part of programmes) are designated algorithm; example: Compute to the value added tax.
In the usage computer program is mostly shortened to programme or the concept software is used. Indeed, computer program is no synonym to software, because with software the complete application finished for the users is meant. This encloses additional resources like operating system, data banks, graphics files and audiofiles, fonts or help texts.
A bigger computer program mostly exists of several modules – which either 'belong' to the programme themselves or are used as 'components' (subroutines) from already existing software libraries by the implementation of the programme. The other way round computer programs can be a part of a superior application system covering a bigger field of application; example: Pay slip, financial accounting, system of registration etc.
The development of computer programs is the area of the software engineering. According to complexity of the computer programs to be developed this happens within the scope of projects. Besides, the activities of the partners are mostly executed under application by action models, special methods and tools to the software development.
Beside the differentiation signs generally applying for software computer programs (as an untervariation can be distinguished from software) according to the following, exemplarily called criteria:
Source programmes (into certain programming language) or machine programmes (compiled under certain operating systems) or programmes in an intercode
Main bodies (called about operating system commands) or subroutines (called by other programmes). Special forms appear if programmes are called, e.g., about technical control components, e.g., about architectures oriented to service, automated workflow management etc.
Batch programmes (process 'batch' of data) or dialog programmes (stand in interaction with users)
After the place of the storage and program implementation distinguished programmes can be saved locally (on a personal computer) and be executed or on a server is installed and even though locally (after the loading about an online connection) are executed or only on the server are saved and there are also executed. With distributed applications program parts on different computers are executed, e.g., the commercial logic and data keeping in the server, functions of the user interface in the local computer; in the purely technical sense different programmes stand, on this occasion, with each other in connection.
The first computer program of Ada Lovelace
As the worldwide first computer program an instruction is valid for the calculation of the Bernoulli figures which Ada Lovelace created in the years 1842/1843 for the mechanical Analytical engine of Charles Babbage. The programme could be executed ihrerzeit only by hand, because there was in the 19th century still no functioning machine which was able in addition.
The first programmes on tape
In the years from 1936 to 1941 Konrad Zuse sketched the computers Z1 and Z3 which processed long instruction sequences on a tape, the first computer programs which could be executed on real machines. The computers controlled four basic arithmetical operations and square root calculations on binary floating-point numbers, the tape contained in each case an arithmetic operation and a memory address.
The first advanced language plan calculation also decreases to Zuse. With it problems can be formulated independently of machine and transferred later in a machine-readable form.
Programmes in the main memory
The EDVAC computer which is based on a draught of John von Neumann from 1945 had a mercury-delay memory for 1024 festival figures or floating-point numbers with 44 bits in each case. Every memory cell could take up instead of a number also a command. With this computer draught it was possible to transmit the commands of a computer program before the implementation first into the main memory. This is usual even today. Nevertheless, EDVAC was partially finished only in 1951. The demonstration computer Manchester SSE and the EDSAC computer constructing on the EDVAC programmes from the main memory had executed already before.
Advanced languages and compilers
In the end of the 1950s computers became so efficient that special programmes, compilers called, source programs could translate into advanced languages automatically in computer instructions, so object programs. Then object programs can be loaded, like with the EDVAC, in the memory and be processed.
With Fortran, COBOL, ALGOL and LISP the first standardised advanced languages originated in the late 1950s years. Programmes into these languages run, translated by a suitable compiler, on different computers. They can be seated partially still on modern computers.
From the algorithm to the programme
Calculation of the biggest common divisor
A programme should be created to the regulation of the biggest common divisor (ggT) of two figures. First a suitable algorithm must be found.
The Euclidean algorithm which was already described about 300 B.C. determines the biggest common divisor (ggT) of two natural numbers A and B:
Such a programme is created under use of a text editor and is saved as a source code in a file or software library (for source code). Afterwards the source code can be 'translated' to a firm run chart for the computer. A compiler is necessary moreover which translates the code from respective programming language into the machine language and creates as a result an object program which is removed as a file or in a software library (for object programs). Then this programme can be launched about an operating system for the implementation, namely arbitrarily often (without new translation).
Some programming languages use no compiler, but an interpreter, the programmes only at the run time in machine language translated.
An other possibility exists in the use of intercode (bytecode) which is generated by the compiler at place of the machine code. An example of it is Java: The Java compiler generates bytecode which is executed then on the so-called virtual machine. The virtual machine interprets or then translates the bytecode for the underlying operating system.
Also has to do in some computer environments, as a rule with superlarge computers, the machine code created by the compiler still with a system program ('Linkage of editor' supra ä.) become reworked and if necessary other subroutines and system routines can be 'integrated'. Only so the resulted programme is compiled.
By means of special programmes, so-called decompilers, it is possible in delimited measure to generate a source program readable in Hochsprache from the machine code again.
Programmes have at least two clearly separated life phases: The period up to the time of the compilation is called (including) Compilezeit which stands in contrast to the run time. In the Compilezeit phase the programme has static properties, given only by the firm source code. After the compilation and with the implementation the binary programme owns dynamic properties and behaviour in additional dependence of the respective run time environment (varying hardware, user's interaction etc.).
In more detailed sense the life phases of programmes can be also understood than software-life cycle. Therefore, the project phases Problem formulation, Analysis and Draught belong to the concerning the contents exact definition of the program contents, afterwards follows the technical implementing in which the programme originates in the form of source program. Then it is in the phase Introduction. After these origin phases of programmes follows their productive use, when required adaptations and extensions (maintenance phase and nursing phase) are carried out.