History of C language
C programming language was developed in 1972 by Dennis Ritchie at AT & T Bell Labs in USA. It was originally developed to construct utilities running on Unix and later applied to re-implementing the kernel of the Unix operating system.
Image: Wikipedia
The C programming language was devised in the early 1970s as a system implementation language for the nascent Unix operating system. Derived from the typeless language BCPL, it evolved a type structure; created on a tiny machine as a tool to improve a meager programming environment.
Early developments
In 1972, Ritchie started to improve B language, which resulted in creating a new language C. The C compiler and some utilities made with it were included in Version 2 Unix.
At Version 4 Unix, released in November 1973, the Unix kernel was extensively re-implemented in C. By this time, the C language had acquired some powerful features such as struct
types.
NOTE: Unix was one of the first operating system kernels implemented in a language other than Assembly.
K&R C
In 1978, Brian Kernighan and Dennis Ritchie published the first edition of book, The C Programming Language. This book served for many years as an informal specification of the language. The version of C that it describes is commonly referred to as K&R C. The second edition of the book covers the later ANSI C standard.
K&R introduced several language features:
- Standard I/O library
long int
data typeunsigned int
data type- Compound assignment operator
- and others
ANSI C and ISO C
During the late 1970s and 1980s, versions of C were implemented for a wide variety of mainframe computers, minicomputers, and microcomputers, including the IBM PC, as its popularity began to increase significantly.
In 1983, the American National Standards Institute (ANSI) formed a committee to establish a standard specification of C. And, around 1989, the C standard was ratified as ANSI X3.159-1989 “Programming Language C”. This version of the language is often referred to as ANSI C, Standard C, or sometimes C89.
In 1990, the ANSI C standard (with formatting changes) was adopted by the International Organization for Standardization (ISO) as ISO/IEC 9899:1990, which is sometimes called C90.
C99
The C standard was further revised in the late 1990s, leading to the publication of ISO/IEC 9899:1999 in 1999, which is commonly referred to as C99.
C99 introduced several new features, including inline functions
, several new data types (including long long int
and a complex
type to represent complex numbers), variable-length arrays
and flexible array members
, improved support for IEEE 754 floating point, support for variadic macros and support for one-line comments beginning with //
.
C11
In 2007, work began on another revision of the C standard. The C11 standard adds numerous new features to C and the library, including type generic macros, anonymous structures, improved Unicode support, atomic operations, multi-threading, and bounds-checked functions. It also makes some portions of the existing C99 library optional, and improves compatibility with C++.
C18
C18 is the current standard for the C programming language published in June 2018. It introduces no new language features, only technical corrections, and clarifications to defects in C11.
C2x
C2x is an informal name for the next (after C18) major C language standard revision. It is not expected to be voted on until 2021.
Ancestors overview
Language | Year | Developed By |
---|---|---|
Algol | 1960 | International Group |
BCPL | 1967 | Martin Richard |
B | 1970 | Ken Thompson |
Traditional C | 1972 | Dennis Ritchie |
K&R C | 1978 | Kernighan & Dennis Ritchie |
ANSI C | 1989 | ANSI Committee |
ANSI/ISO C | 1990 | ISO Committee |
C99 | 1999 | Standardization Committee |
C11 | 2011 | Standardization Committee |
C18 | 2018 | Standardization Committee |