C (programming language)

CC programming languageC languageK&R CC codeC-languageC (core)C programC programsC programming
C (, as in the general-purpose, procedural computer programming language supporting structured programming, lexical variable scope, and recursion, while a static type system prevents unintended operations. By design, C provides constructs that map efficiently to typical machine instructions and has found lasting use in applications previously coded in assembly language. Such applications include operating systems and various application software for computers, from supercomputers to embedded systems.wikipedia
4,262 Related Articles

Programming language

programming languageslanguagedialect
C (, as in the general-purpose, procedural computer programming language supporting structured programming, lexical variable scope, and recursion, while a static type system prevents unintended operations.
Some languages are defined by a specification document (for example, the C programming language is specified by an ISO Standard) while other languages (such as Perl) have a dominant implementation that is treated as a reference.

Dennis Ritchie

Dennis M. RitchieRitchieDennis MacAlistair Ritchie
C was originally developed at Bell Labs by Dennis Ritchie between 1972 and 1973 to make utilities running on Unix.
He created the C programming language and, with long-time colleague Ken Thompson, the Unix operating system and B programming language.

Bell Labs

Bell LaboratoriesBell Telephone LaboratoriesAT&T Bell Laboratories
C was originally developed at Bell Labs by Dennis Ritchie between 1972 and 1973 to make utilities running on Unix.
Researchers working at Bell Labs are credited with the development of radio astronomy, the transistor, the laser, the photovoltaic cell, the charge-coupled device (CCD), information theory, the Unix operating system, and the programming languages C, C++, and S.

ANSI C

C89C90ISO C
C has been standardized by the ANSI since 1989 (see ANSI C) and by the International Organization for Standardization.
ANSI C, ISO C and Standard C are successive standards for the C programming language published by the American National Standards Institute (ANSI) and the International Organization for Standardization (ISO).

Scope (computer science)

scopelexical scopeLexical
C (, as in the general-purpose, procedural computer programming language supporting structured programming, lexical variable scope, and recursion, while a static type system prevents unintended operations. Like most procedural languages in the ALGOL tradition, C has facilities for structured programming and allows lexical variable scope and recursion.
This began with ALGOL 60, where "[e]very declaration ... is valid only for that block.", and today is particularly associated with languages in the Pascal and C families and traditions.

Unix

UNIX operating systemAT&T UnixUnix-like
C was originally developed at Bell Labs by Dennis Ritchie between 1972 and 1973 to make utilities running on Unix.
Unix distinguishes itself from its predecessors as the first portable operating system: almost the entire operating system is written in the C programming language, thus allowing Unix to reach numerous platforms.

Procedural programming

proceduralprocedural languageprocedural code
C (, as in the general-purpose, procedural computer programming language supporting structured programming, lexical variable scope, and recursion, while a static type system prevents unintended operations.
Pascal and C were published circa 1970–1972.

ALGOL

ALGOL 60ALGOL programming languageALGOrithmic Language
Like most procedural languages in the ALGOL tradition, C has facilities for structured programming and allows lexical variable scope and recursion.
It was designed to avoid some of the perceived problems with FORTRAN and eventually gave rise to many other programming languages, including PL/I, Simula, BCPL, B, Pascal, and C.

GObject

GObject IntrospectionGLib Object System
While C does not include certain features found in other languages (such as object orientation and garbage collection), these can be implemented or emulated, often through the use of external libraries (e.g., the GLib Object System or the Boehm garbage collector).
GObject is designed for use both directly in C programs to provide object-oriented C-based APIs and through bindings to other languages to provide transparent cross-language interoperability, e.g. PyGObject.

Structured programming

structuredProgram structurestructured program
C (, as in the general-purpose, procedural computer programming language supporting structured programming, lexical variable scope, and recursion, while a static type system prevents unintended operations. Like most procedural languages in the ALGOL tradition, C has facilities for structured programming and allows lexical variable scope and recursion.
Block-structured languages have a syntax for enclosing structures in some formal way, such as an if-statement bracketed by as in ALGOL 68, or a code section bracketed by, as in PL/I and Pascal, whitespace indentation as in Python - or the curly braces of C and many later languages.

C syntax

storage classstorage class specifieraccessing members
These languages have drawn many of their control structures and other basic features from C. Most of them (Python being a dramatic exception) also express highly similar syntax to C, and they tend to combine the recognizable expression and statement syntax of C with underlying type systems, data models, and semantics that can be radically different.
The syntax of the C programming language, the rules governing writing of software in the language, is designed to allow for programs that are extremely terse, have a close relationship with the resulting object code, and yet provide relatively high-level data abstraction.

Measuring programming language popularity

most popular in science and engineeringmost widely used programming languagespopular programming languages in use
It has become one of the most widely used programming languages, with C compilers from various vendors available for the majority of existing computer architectures and operating systems.
For example, COBOL is still strong in the corporate data center, often on large mainframes; Fortran in computational science and engineering; C in embedded applications and operating systems; and other languages are regularly used to write many different kinds of applications.

Boehm garbage collector

Boehm–Demers–WeiserBoehm collectorBoehm GC
While C does not include certain features found in other languages (such as object orientation and garbage collection), these can be implemented or emulated, often through the use of external libraries (e.g., the GLib Object System or the Boehm garbage collector).
The Boehm–Demers–Weiser garbage collector, often simply known as Boehm GC, is a conservative garbage collector for C and C++ developed by Hans Boehm, Alan Demers, and Mark Weiser.

Assignment (computer science)

assignmentsingle assignmentassignment operator
The most common statement is an expression statement, consisting of an expression to be evaluated, followed by a semicolon; as a side effect of the evaluation, functions may be called and variables may be assigned new values.
Today, the most commonly used notation for this basic operation has come to be (originally Superplan 1949–51, popularized by Fortran 1957 and C) followed by (originally ALGOL 1958, popularised by Pascal), although there are many other notations in use.

Parameter (computer programming)

parameterparametersargument
Function parameters are always passed by value.
The following program in the C programming language defines a function that is named "SalesTax" and has one parameter named "price".

C string handling

C stringstrcpystrlcpy
The C programming language has a set of functions implementing operations on strings (character strings and byte strings) in its standard library.

Compiler

compiledcompilerscompile
It has become one of the most widely used programming languages, with C compilers from various vendors available for the majority of existing computer architectures and operating systems.
However, several research and industry efforts began the shift toward high-level systems programming languages, for example, BCPL, BLISS, B, and C.

C preprocessor

macropreprocessorcpp
The C preprocessor or cpp is the macro preprocessor for the C and C++ computer programming languages.

C++

C++ programming languageC++98C with Classes
Many later languages have borrowed directly or indirectly from C, including C++, C#, Unix's C shell, D, Go, Java, JavaScript, Limbo, LPC, Objective-C, Perl, PHP, Python, Rust, Swift, Verilog and SystemVerilog (hardware description languages).
C++ is a general-purpose programming language created by Bjarne Stroustrup as an extension of the C programming language, or "C with Classes".

Static (keyword)

keyword static
In the C programming language (and its close descendants such as C++ and Objective-C), is a reserved word controlling both lifetime (as a static variable) and visibility (depending on linkage).

Go (programming language)

GoGo programming languageGolang
Many later languages have borrowed directly or indirectly from C, including C++, C#, Unix's C shell, D, Go, Java, JavaScript, Limbo, LPC, Objective-C, Perl, PHP, Python, Rust, Swift, Verilog and SystemVerilog (hardware description languages).
Go is syntactically similar to C, but with memory safety, garbage collection, structural typing, and CSP-style concurrency.

Java (programming language)

JavaJava programming languageJava language
Many later languages have borrowed directly or indirectly from C, including C++, C#, Unix's C shell, D, Go, Java, JavaScript, Limbo, LPC, Objective-C, Perl, PHP, Python, Rust, Swift, Verilog and SystemVerilog (hardware description languages).
The syntax of Java is similar to C and C++, but it has fewer low-level facilities than either of them.

Perl

Perl 5Perl programming languagePerl Script
Many later languages have borrowed directly or indirectly from C, including C++, C#, Unix's C shell, D, Go, Java, JavaScript, Limbo, LPC, Objective-C, Perl, PHP, Python, Rust, Swift, Verilog and SystemVerilog (hardware description languages).
The Perl languages borrow features from other programming languages including C, shell script (sh), AWK, and sed; Wall also alludes to BASIC and Lisp in the introduction to Learning Perl (Schwartz & Christiansen) and so on.

Objective-C

Objective-C++Objective CCategory
Many later languages have borrowed directly or indirectly from C, including C++, C#, Unix's C shell, D, Go, Java, JavaScript, Limbo, LPC, Objective-C, Perl, PHP, Python, Rust, Swift, Verilog and SystemVerilog (hardware description languages).
Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.

Null-terminated string

null-terminatedASCIIZmark the end of a string
Alternative names are C string, which refers to the C programming language and ASCIIZ (although C can use encodings other than ASCII).