Information about Computer Programs

A computer program is one or more instructions that are intended for execution by a computer. Specifically, it is a symbol or combination of symbols forming an algorithm that may or may not terminate, and that algorithm is written in a programming language. [1] Computer programs range from low-level assembly languages, where the algorithm is minutely dictated; through imperative languages, where the algorithm is apparent; to high-level declarative languages, where the algorithm is hidden in a black box.

Computer programs may be categorized along functional lines. These functional categories include application software, operating systems, video games, and compilers, among others. Computer programs embedded in hardware devices are called firmware.

The formal expression of computational methods in a human-readable computer language is often referred to as source code, while the machine-executable expressions of computational methods are commonly referred to as executables, binary images, or simply as binaries — a reference to the binary file format commonly used to store the executable code.

Terminology

Commercial computer programs aimed at end users are commonly referred to as application software by the computer industry, as these programs are focused on the functionality of what the computer is being used for (its application), as opposed to being focused on system-level functionality (for example, as the Windows operating system is). In practice, colloquially, both application software and system software may correctly be referred to as programs, as may the more esoteric firmware — software firmly built into an embedded system.

Program execution

A computer program exists in a source code form, viewable as a programming language; as a tokenised form, ready to be interpreted; or in machine code form, ready to be executed. (An aside: source code form may also be interpreted.) Computer programs can be divided into two categories — system software and application software. System software is the operating system that couples the computer's hardware with the application software. Application software couples the system software with the user interface.

A computer program is loaded into memory (usually by the operating system) and then executed ("run"), instruction by instruction, until termination, either with success or through software or hardware error.

Before a computer can execute any sort of program (including the operating system, itself a program), the computer hardware must be initialized. This initialization is done in modern PCs by a piece of software stored on programmable memory chips installed by the manufacturer, called the BIOS. The BIOS will attempt to initialize the boot sequence, making the computer ready for higher-level program execution.

Programs vs. data

The executable form of a program (its instructions) is often treated as being different from the data the program operates on. In some cases this distinction is blurred with programs creating, or modifying, data, which is subsequently executed as part of the same program (this is a common occurrence for programs written in Lisp), see self-modifying code.

Programming

Main article: Computer programming
Computer programming is the iterative process of writing or editing source code, followed by testing, analyzing and refining this code. A person who practices this skill is referred to as a computer programmer or software developer. The sometimes lengthy process of computer programming is usually referred to as software development, with the term software engineering becoming more popular as the process comes to be seen as an engineering discipline.

One approach to this process is team programming, in which each member of the group has equal say in the development process, except for one person who guides the group through discrepancies. Another approach is referred to as peer programming or pair programming.

A program is likely to contain a variety of data structures and a variety of different algorithms to operate on them.

Programming languages

Main article: Programming language
Computer programs are often written by people (known as computer programmers), but may also be generated by other programs - an example of metaprogramming.

Various programming paradigms can be employed in software development. The source code of most computer programs consists of a list of instructions that explicitly implement an algorithm (known as an imperative programming style); in another form (known as declarative programming) the characteristics of the required information are specified and the method used to obtain the results, if any, is left to the platform. Examples of programming languages include C, JavaScript, and Lisp.

Computational methods and algorithms

Computational methods are a superset of algorithms, and adhere to most of the characteristics of algorithms:
  1. A computational method must be definite, meaning each step of the algorithm must be precisely defined. Formally defined computer languages meet this criterion by allowing algorithms to be specified in such a way that every statement has a very definite meaning.
  2. A computational method must have zero or more inputs, or quantities given to it before the algorithm runs.
  3. A computational method must have one or more outputs which are quantities produced by the method, and will bear some specified relation to the inputs.
  4. A computational method is generally expected to be effective, meaning that its operations can be performed by hand, accurately and exactly, in a finite amount of time.


Although algorithms are defined to be finite, meaning they must complete in a finite number of steps, computational methods do not have to adhere to this restriction. A computational method theoretically does not have to stop running. Non-finite processes are common in reactive processes, such as operating systems that continually interact with their environment.[2]

References

1. ^ "An expression of a computational method in a computer language is called a program." Knuth, Donald E. (1997). The Art of Computer Programming, Volume 1, 3rd Edition. Boston: Addison-Wesley, pp.5. ISBN 0-201-89683-4. 
2. ^ Knuth, Donald E. (1997). The Art of Computer Programming, Volume 1, 3rd Edition. Boston: Addison-Wesley, pp.4-5. ISBN 0-201-89683-4. 

Further reading

  • 1997">Knuth, Donald E. (1997). The Art of Computer Programming, Vol. 2, 3rd Ed. Addison-Wesley. ISBN 0-201-89684-2.1997&rft.pub=Addison-Wesley"> 
  • 1997">Knuth, Donald E. (1997). The Art of Computer Programming, Vol. 3, 3rd Ed. Addison-Wesley. ISBN 0-201-89685-0.1997&rft.pub=Addison-Wesley"> 

External links

computer is a machine which manipulates data according to a list of instructions.

Computers take numerous physical forms. The first devices that resemble modern computers date to the mid-20th century (around 1940 - 1941), although the computer concept and various machines
..... Click the link for more information.
In mathematics, computing, linguistics, and related disciplines, an algorithm is a finite list of well-defined instructions for accomplishing some task that, given an initial state, will proceed through a well-defined series of successive states, eventually terminating in an
..... Click the link for more information.
A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. Programming languages, like natural languagess, are defined by syntactic and semantic rules which describe their structure and meaning respectively.
..... Click the link for more information.
assembly language is a low-level language for programming computers. It implements a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture.
..... Click the link for more information.
In computer science, imperative programming, as contrasted with declarative programming, is a programming paradigm that describes computation as statements that change a program state.
..... Click the link for more information.
A declarative programming language is a high-level language that describes a problem rather than defining a solution — it makes use of declarative programming. A declarative programming language says "what", while an imperative programming language says "how".
..... Click the link for more information.
Black box is a technical term for a device or system or object when it is viewed primarily in terms of its input and output characteristics. Almost anything might occasionally be referred to as a black box: a transistor, an algorithm, humans, the Internet.
..... Click the link for more information.
Application software is a subclass of computer software that employs the capabilities of a computer directly and thoroughly to a task that the user wishes to perform. This should be contrasted with system software which is involved in integrating a computer's various capabilities,
..... Click the link for more information.
An operating system (OS) is the software that manages the sharing of the resources of a computer. An operating system processes system data and user input, and responds by allocating and managing tasks and internal system resources as a service to users and programs of the
..... Click the link for more information.
video game is a game that involves interaction with a user interface to generate visual feedback on a video device.

The word video in video game traditionally refers to a raster display device.
..... Click the link for more information.
compiler is a computer program (or set of programs) that translates text written in a computer language (the source language) into another computer language (the target language).
..... Click the link for more information.
Embedded software's principal role is not the transformation of data, but rather the interaction with the physical world. It executes on machines that are not, first and foremost, computers.
..... Click the link for more information.
firmware is a computer program that is embedded in a hardware device, for example a microcontroller. It can also be provided on flash ROMs or as a binary image file that can be uploaded onto existing hardware by a user.
..... Click the link for more information.
source code (commonly just source or code) is any sequence of statements and/or declarations written in some human-readable computer programming language.
..... Click the link for more information.
executable or executable file, in computer science, is a file whose contents are meant to be interpreted as a program by a computer.

While a file in source form may be executable, such a file is usually referred to as a "script.
..... Click the link for more information.
binary file is a computer file which may contain any type of data, encoded in binary form for computer storage and processing purposes; for example, computer document files containing formatted text.
..... Click the link for more information.
binary numeral system, or base-2 number system, is a numeral system that represents numeric values using two symbols, usually 0 and 1. More specifically, the usual base-2 system is a positional notation with a radix of 2.
..... Click the link for more information.
A file format is a particular way to encode information for storage in a computer file.

Since a disk drive, or indeed any computer storage, can store only bits, the computer must have some way of converting information to 0s and 1s and vice-versa.
..... Click the link for more information.
end-user as the person who uses a product. The end-user or consumer may differ from the customer, who might buy the product, but doesn't necessarily use it; for example, a zookeeper, the customer, might purchase elephant food for an end-user: the elephant.
..... Click the link for more information.
Application software is a subclass of computer software that employs the capabilities of a computer directly and thoroughly to a task that the user wishes to perform. This should be contrasted with system software which is involved in integrating a computer's various capabilities,
..... Click the link for more information.
Microsoft Windows

Screenshot of Windows Vista Ultimate, the latest version of Microsoft Windows.
Company/developer: Microsoft Corporation
OS family: MS-DOS/9x-based, Windows CE, Windows NT
Source model: Closed source

..... Click the link for more information.
firmware is a computer program that is embedded in a hardware device, for example a microcontroller. It can also be provided on flash ROMs or as a binary image file that can be uploaded onto existing hardware by a user.
..... Click the link for more information.
An embedded system is a special-purpose computer system designed to perform one or a few dedicated functions.[1] It is usually embedded as part of a complete device including hardware and mechanical parts.
..... Click the link for more information.
source code (commonly just source or code) is any sequence of statements and/or declarations written in some human-readable computer programming language.
..... Click the link for more information.
A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. Programming languages, like natural languagess, are defined by syntactic and semantic rules which describe their structure and meaning respectively.
..... Click the link for more information.
In computer science, an interpreter is a computer program that executes, or performs, instructions written in a computer programming language. Interpretation is one of the two major ways in which a programming language can be implemented, the other being compilation.
..... Click the link for more information.
executable or executable file, in computer science, is a file whose contents are meant to be interpreted as a program by a computer.

While a file in source form may be executable, such a file is usually referred to as a "script.
..... Click the link for more information.
System software is a generic term referring to any computer software which manages and controls the hardware so that application software can perform a task. It is an essential part of the computer system.
..... Click the link for more information.
Application software is a subclass of computer software that employs the capabilities of a computer directly and thoroughly to a task that the user wishes to perform. This should be contrasted with system software which is involved in integrating a computer's various capabilities,
..... Click the link for more information.
An operating system (OS) is the software that manages the sharing of the resources of a computer. An operating system processes system data and user input, and responds by allocating and managing tasks and internal system resources as a service to users and programs of the
..... Click the link for more information.


This article is copied from an article on Wikipedia.org - the free encyclopedia created and edited by online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of the wikipedia encyclopedia articles provide accurate and timely information please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.
Herod_Archelaus


page counter