Our editors will review what you’ve submitted and determine whether to revise the article.
- Key People:
- Richard Stallman
- Kenneth Lane Thompson
- Dennis M. Ritchie
- Related Topics:
- computer programming language
- MySQL
- procedural language
C, computer programming language developed in the early 1970s by American computer scientist Dennis M. Ritchie at Bell Laboratories (formerly AT&T Bell Laboratories). C was designed as a minimalist language to be used in writing operating systems for minicomputers, such as the DEC PDP 7, which had very limited memories compared with the mainframe computers of the period. The language was devised during 1969–73, alongside the early development of the UNIX operating system. It was based on CPL (Combined Programming Language), which had been first condensed into the B programming language—a stripped-down computer programming language—created in 1969–70 by Ken Thompson, an American computer scientist and a colleague of Ritchie. Ritchie subsequently rewrote and restored features from CPL to create C and eventually rewrote the UNIX operating system in the new language.
As the UNIX system was enhanced, a series of changes took place in C between 1977 and 1979. During this time a description of the language became widely available through a book, The C Programming Language (1978), by Brian W. Kernighan and Ritchie. In the mid-1980s it became important to establish an official standard for C, since it was being used in projects subject to commercial and government contracts. In 1983 the American National Standards Institute (ANSI) set up a committee that further amended and standardized the language. Since then C has been referred to as ANSI Standard C, and it remains popular in the world of UNIX-like operating systems. C also became one of the most common programming languages used for writing other system software and applications. Descendants of C include Concurrent C, Objective C, C*, C#, and the widely used C++. The programming language Java was introduced in 1994 as a simplified subset of C for deployment over the Internet and for use in portable devices with limited memory or limited processing capabilities.