C (programming language)

The C programming language is a computer programming language developed in the early 1970s by Ken Thompson and Dennis Ritchie at Bell Labs.   They used it to improve the UNIX operating system.  It is still much used today.  C is a procedural language, which means that people write their programs as a series of step-by-step instructions.  C is a compiled language, which means that the computer source code, written in C, is converted to make some machine code that a computer chip can actually execute.

Because the ideas behind C are like the ideas used in the design of the computer, the compiler (program builder) can generate fast machine code for the computer. The language itself has very few keywords, and most things are done using libraries, which are collections of code made to be reused. C has a big standard library called stdio, which stands for standard input/output.

C has a variety of uses: 
 writing embedded systems like the code that runs inside a computer mouse, or a car headlight.
 writing device drivers like the code inside a laptop computer that interacts with the touchpad or the microphone
 writing protocol stacks like the code that allows one computer to talk to other computers on the internet.
 writing operating systems, such as Linux, MacOS and UNIX, and the utilities that come with those operating systems.
 writing application software, such as web browsers, word processors, etc.
 writing video games. Many of the most well-reviewed video games, including Doom, Quake, and Super Mario 64 are written in C.
 The compilers and interpreters of many other programming languages, such as Python and Perl, are written in C.

C standards
There are three successive standards for the C programming language ANSI C, ISO C and Standard C which are published by the American National Standards Institute (ANSI) and the International Organization for Standardization (ISO).

C is available for many different types of computers. This is why C is called a "portable" language. A program that is written in C and that respects certain limitations can be compiled for most platforms, and all in mainstream use.

The syntax of C has also influenced many other programming languages, such as C++, C#, and Java, and many more programming languages we use nowadays.

Example code
Here is an example of a program written in C. When built and run it will show "Hello world!", followed by a new line on the computer screen.

#include <stdio.h>

int main() 
{
    printf("Hello world!\n");
    return 0;
}

 #include <stdio.h> gets the standard input/output tools ready for the program to use. This allows text to be displayed (output). 
 int main() is called the main function, and it is where the first code starts being run in a C program.
 printf("Hello world!\n"); is what displays text, in this case, "Hello world!" with a new line (\n) at the end.
 return 0; tells the computer that the program finished and did not run into problems.

Related pages
 C dynamic memory allocation
 C++
 C#
 Objective-C

Other websites
 Introduction to C programming
 Coding Programmer Page / C Library Reference and Examples (English)
 C (programming language) -Citizendium

Programming languages