C (programming language)

C
Text says "The C Programming Language"
Logotype used on the cover of the first edition of The C Programming Language[1]
ParadigmMulti-paradigm: imperative (procedural), structured
Designed byDennis Ritchie
DeveloperANSI X3J11 (ANSI C); ISO/IEC JTC 1 (Joint Technical Committee 1) / SC 22 (Subcommittee 22) / WG 14 (Working Group 14) (ISO C)
First appeared1972; 52 years ago (1972)[2]
Stable release
C23 / October 31, 2024; 23 days ago (2024-10-31)
Preview release
C2y (N3220) / February 21, 2024; 9 months ago (2024-02-21)[3]
Typing disciplineStatic, weak, manifest, nominal
OSCross-platform
Filename extensions.c, .h
Websitewww.iso.org/standard/82075.html
www.open-std.org/jtc1/sc22/wg14/
Major implementations
pcc, GCC, Clang, Intel C, C++Builder, Microsoft Visual C++, Watcom C
Dialects
Cyclone, Unified Parallel C, Split-C, Cilk, C*
Influenced by
B (BCPL, CPL), ALGOL 68,[4] PL/I, FORTRAN
Influenced
Numerous: AMPL, AWK, csh, C++, C--, C#, Objective-C, D, Go, Java, JavaScript, JS++, Julia, Limbo, LPC, Perl, PHP, Pike, Processing, Python, Rust, Seed7, V (Vlang), Vala, Verilog (HDL),[5] Nim, Zig

C (pronounced /ˈs/ – like the letter c)[6] is a general-purpose programming language. It was created in the 1970s by Dennis Ritchie and remains very widely used and influential. By design, C's features cleanly reflect the capabilities of the targeted CPUs. It has found lasting use in operating systems code (especially in kernels[7]), device drivers, and protocol stacks, but its use in application software has been decreasing.[8] C is commonly used on computer architectures that range from the largest supercomputers to the smallest microcontrollers and embedded systems.

A successor to the programming language B, C was originally developed at Bell Labs by Ritchie between 1972 and 1973 to construct utilities running on Unix. It was applied to re-implementing the kernel of the Unix operating system.[9] During the 1980s, C gradually gained popularity. It has become one of the most widely used programming languages,[10][11] with C compilers available for practically all modern computer architectures and operating systems. The book The C Programming Language, co-authored by the original language designer, served for many years as the de facto standard for the language.[12][1] C has been standardized since 1989 by the American National Standards Institute (ANSI) and, subsequently, jointly by the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC).

C is an imperative procedural language, supporting structured programming, lexical variable scope, and recursion, with a static type system. It was designed to be compiled to provide low-level access to memory and language constructs that map efficiently to machine instructions, all with minimal runtime support. Despite its low-level capabilities, the language was designed to encourage cross-platform programming. A standards-compliant C program written with portability in mind can be compiled for a wide variety of computer platforms and operating systems with few changes to its source code.

Since 2000, C has consistently ranked among the top four languages in the TIOBE index, a measure of the popularity of programming languages.[13]

  1. ^ a b Prinz, Peter; Crawford, Tony (December 16, 2005). C in a Nutshell. O'Reilly Media, Inc. p. 3. ISBN 9780596550714.
  2. ^ Ritchie (1993): "Thompson had made a brief attempt to produce a system coded in an early version of C—before structures—in 1972, but gave up the effort."
  3. ^ "N3221 – Editor's Report, Post January 2024 Strasbourg France Meeting". ISO/IEC JTC1/SC22/WG14. Open Standards. February 21, 2024. Retrieved May 24, 2024.
  4. ^ Ritchie (1993): "The scheme of type composition adopted by C owes considerable debt to Algol 68, although it did not, perhaps, emerge in a form that Algol's adherents would approve of."
  5. ^ "Verilog HDL (and C)" (PDF). The Research School of Computer Science at the Australian National University. June 3, 2010. Archived from the original (PDF) on November 6, 2013. Retrieved August 19, 2013. 1980s: Verilog first introduced; Verilog inspired by the C programming language
  6. ^ "The name is based on, and pronounced like the letter C in the English alphabet". the c programming language sound. English Chinese Dictionary. Archived from the original on November 17, 2022. Retrieved November 17, 2022.
  7. ^ Munoz, Daniel. "After All These Years, the World is Still Powered by C Programming | Toptal". Toptal Engineering Blog. Retrieved June 15, 2024.
  8. ^ "C Language Drops to Lowest Popularity Rating". Developer.com. August 9, 2016. Archived from the original on August 22, 2022. Retrieved August 1, 2022.
  9. ^ Cite error: The named reference sigplan was invoked but never defined (see the help page).
  10. ^ "Programming Language Popularity". 2009. Archived from the original on January 16, 2009. Retrieved January 16, 2009.
  11. ^ "TIOBE Programming Community Index". 2009. Archived from the original on May 4, 2009. Retrieved May 6, 2009.
  12. ^ Ward, Terry A. (August 1983). "Annotated C / A Bibliography of the C Language". Byte. p. 268. Retrieved January 31, 2015.
  13. ^ "TIOBE Index for September 2024". Archived from the original on September 18, 2024. Retrieved September 20, 2024.