History & Evolution of C
C was not designed in a vacuum as an academic exercise. It was built to solve a very practical problem: Bell Labs needed a language to rewrite the Unix operating system so it could run on more than one type of computer. That practical origin explains almost everything about C's design — it is lean, close to the hardware, and free of features that would slow a compiler down or get in a systems programmer's way.
Dennis Ritchie and Bell Labs (1969–1973)
C was created by Dennis Ritchie at Bell Telephone Laboratories between 1969 and 1973. At the time, Ritchie and Ken Thompson were building Unix, and Thompson had already written an early version of it in assembly language and later in a language of his own called B. Assembly was too tied to specific hardware, and B was too limited (it treated everything as a single machine word, with no real support for different data types like characters or floating-point numbers) to comfortably express the ideas needed for a full operating system.
Ritchie extended B with a type system and other features, and the result was named C — simply the next letter after B. By 1973, the Unix kernel itself had been rewritten in C, making Unix one of the first operating systems not written primarily in assembly language. This was a turning point: it proved that a systems language could be both portable and fast enough for an operating system kernel.
From B and BCPL to C
BCPL (Basic Combined Programming Language, 1966) — an earlier systems language that influenced B; it was typeless and worked directly with machine words.
B (Ken Thompson, 1969) — a simplified, interpreted descendant of BCPL used for early Unix tools; also typeless.
C (Dennis Ritchie, 1972) — added a proper type system (int, char, float, arrays, structures, pointers with types) on top of B's simplicity, while staying close enough to the hardware to compile to efficient machine code.
K&R C: the original de facto standard
For its first decade, C had no official standard at all — the language was defined by whatever the compiler did and by a single book. In 1978, Brian Kernighan and Dennis Ritchie published The C Programming Language, universally nicknamed "K&R" after its authors. For years, this book was the specification: if you wanted to know exactly how C behaved, you read K&R.
This version of the language is often called "K&R C" to distinguish it from the later, formally standardized versions. It lacked some things we take for granted today, such as function prototypes that check argument types, which later standards added.
Standardization timeline
As C's popularity grew beyond Bell Labs and Unix, different vendors started extending it in incompatible ways. To keep the language portable, the American National Standards Institute (ANSI) and later the International Organization for Standardization (ISO) stepped in to formally standardize it.
Standard | Year | Notable additions |
|---|---|---|
K&R C | 1978 | The original language as described in the first edition of "The C Programming Language" — no official standard, just the book. |
ANSI C / C89 (C90) | 1989 / 1990 | First official standard. Added function prototypes, |
C99 | 1999 |
|
C11 | 2011 |
|
C17 (C18) | 2018 | A bug-fix/clarification release over C11 with no major new language features. |
C23 | 2024 |
|
How C shaped Unix — and vice versa
C and Unix grew up together, and each shaped the other. Unix needed C to become portable across hardware; in return, Unix became C's proving ground and its primary distribution vehicle — every Unix system shipped with a C compiler, which meant every Unix programmer learned C. As Unix (and later Unix-like systems such as Linux and BSD) spread to universities and industry throughout the 1970s and 80s, C spread with it, cementing its place as the default language for operating systems and systems programming.
That legacy is still visible today: the Linux kernel, most other modern operating system kernels, and huge portions of the tools built on top of them are still written largely in C, more than fifty years after Ritchie's original design.