Programming
#include <stdio.h> int main(void) { printf("Hello world!\n"); return 0; } |
Source code of a Hello World program written in the C programming language |
Computer programming is the iterative process of writing or editing source code.
Editing source code involves testing, analyzing, and refining, and sometimes coordinating with other programmers on a jointly developed program.
A person who practices this skill is referred to as a computer programmer, software developer or coder.
The sometimes lengthy process of computer programming is usually referred to as software development
The term software engineering is becoming popular as the process is seen as an engineering discipline
Computer programs can be categorized by the programming language paradigm used to produce them. Two of the main paradigms are imperative and declarative.
Programs written using an imperative language specify an algorithm using declarations, expressions, and statements.[3] A declaration couples a variable name to a datatype. For example:
var x: integer;
. An expression yields a value. For example: 2 + 2
yields 4. Finally, a statement might assign an expression to a variable or use the value of a variable to alter the program's control flow. For example: x := 2 + 2; if x = 4 then do_something();
One criticism of imperative languages is the side effect of an assignment statement on a class of variables called non-local variables.[4]
Programs written using a declarative language specify the properties that have to be met by the output. They do not specify details expressed in terms of the control flow of the executing machine but of the mathematical relations between the declared objects and their properties. Two broad categories of declarative languages are functional languages andlogical languages. The principle behind functional languages (like Haskell) is to not allow side effects, which makes it easier to reason about programs like mathematical functions.[4] The principle behind logical languages (like Prolog) is to define the problem to be solved — the goal — and leave the detailed solution to the Prolog system itself.[5] The goal is defined by providing a list of subgoals. Then each subgoal is defined by further providing a list of its subgoals, etc. If a path of subgoals fails to find a solution, then that subgoal is backtracked and another path is systematically attempted.
The form in which a program is created may be textual or visual. In a visual language program, elements are graphically manipulated rather than textually specified.