Computer program

From Free net encyclopedia

The terms computer program, software program, applications program, system software, or just program are used to refer to either an executable program (by both lay people and computer programmers) or the collection of source code from which an executable program is created (eg, compiled).

Contents

Terminology

Software programs (collections of programs and related resources) are most frequently referred to as applications by end-users, as these people are focused on the abilities of application software (application programs) rather than system software.

In general discussion among computer programmers the context is invariably sufficient to distinguish which of the two possible meanings of the term are intended.

Note: The British English spelling programme is, for the most part, no longer used to refer to computer programs, as most internationally-used computing terms use the words (and spelling conventions) adopted in the U.S..

Program execution

A modern day computer program is loaded into memory (usually by the operating system), interpreted and then executed ("run") instruction by instruction until "program termination", either with success or through software or hardware error. Some primitive types of computers ran instructions encoded in various ways, an example would be punch cards.

Before a computer can execute any sort of program (including the operating system which is also a program) the computer hardware must be initialized. This is done 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 miscellaneous program execution

Programs vs. data

The source code of a program is often treated as being different from the data it 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). Neural networks are another example where this distiction between code and data is not clear cut.

Programming

A program is likely to contain a variety of different algorithms.

Creating a computer program is the iterative process of writing new source code or modifying existing 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 now referred to as "software development" or software engineering. The latter becoming more popular due to the increasing maturity of the discipline. (see Debate over who is a software engineer)

Two other forms of modern day approaches are team programming where each member of the group has equal say in the development process except for one person who guides the group through discrepancies. These groups tend to be around 10 people to keep the group manageable. The second form is referred to as "peer programming" or pair programming.

See Process and methodology for the different aspects of modern day computer programming.

Trivia

The world's shortest useful program is usually agreed upon to be the utility cont/rerun used on the old operating system CP/M. It was 2 bytes long (JMP 100), jumping to the start position of the program that had previously been run and so restarting the program, in memory, without loading it from the much slower disks of the 1980's.However, it is important to note that the world's smallest program in actuality was created during the International Obfuscated C Code Contest, which consists of a file containing zero bytes, which when run outputs zero bytes to the screen, also making it the world's smallest self-replicating program.

See also

External links

ca:Programa informàtic cs:Program de:Computerprogramm es:programa de ordenador et:Arvutiprogramm fa:برنامه (رایانه) fi:Tietokoneohjelma fr:programme informatique id:Program komputer io:Programo it:programma (informatica) ja:プログラム (コンピュータ) ko:프로그램 lo:ໂປແກມ ຄອມພິວເຕີ lv:Datorprogramma nl:computerprogramma pt:Programa de computador ru:Компьютерная программа simple:Computer program sv:datorprogram th:โปรแกรมคอมพิวเตอร์ zh:程序