Nearby lessons
3 of 124C - History
The history of the C language — from ALGOL and BCPL to Dennis Ritchie's 1972 creation at Bell Labs, the K&R book, and the ANSI/ISO standards C89, C99, C11, C17 and C23.
The Family Tree of C
C did not appear from nowhere. It is the last step in a chain of languages, each one trimming the previous one down to something simpler and faster:
| Year | Language | Created by | Contribution |
|---|---|---|---|
| 1960 | ALGOL 60 | International committee | Introduced block structure and structured programming |
| 1963 | CPL | Cambridge & London Universities | Combined Programming Language — powerful but too large |
| 1967 | BCPL | Martin Richards | Stripped CPL down for systems programming |
| 1970 | B | Ken Thompson | Simplified BCPL for early UNIX; had no data types |
| 1972 | C | Dennis Ritchie | Added data types and structures to B |
int, char, float and struct — and that upgrade is what turned B into C.C and UNIX — Born Together
In 1969 Ken Thompson and Dennis Ritchie were building UNIX at Bell Laboratories, originally in assembly language. Assembly had a fatal flaw: it only worked on one machine, so moving UNIX to new hardware meant rewriting everything.
Ritchie designed C to solve exactly that problem. In 1973 the UNIX kernel was rewritten in C — the first time a major operating system had been written in a high-level language. Suddenly UNIX could be moved to a new computer by writing a new compiler instead of a new kernel.
K&R C — The First Standard (1978)
In 1978 Brian Kernighan and Dennis Ritchie published The C Programming Language. The book was so widely used that the dialect it described became the unofficial standard, known forever as K&R C.
It also gave programming its most famous first program:
The Official Standards
By the mid-1980s different compilers accepted slightly different C, so a formal standard was needed. Each revision added features while keeping old code working:
| Standard | Year | Also called | Key additions |
|---|---|---|---|
| ANSI C | 1989 | C89 / C90 | Function prototypes, void, the standard library |
| C99 | 1999 | — | // comments, bool, long long, declare-anywhere variables |
| C11 | 2011 | — | Multithreading, anonymous structures, safer library functions |
| C17 | 2018 | C18 | Bug fixes only — no new features |
| C23 | 2024 | — | true/false keywords, typeof, binary literals |
main() with no return type and old-style parameter lists. Modern compilers warn about both. Always write int main() in new code.The Legacy of C
C's syntax — curly braces, semicolons, if/else, for loops — was inherited by almost every language that followed: C++ (1983), Java (1995), JavaScript (1995), PHP (1995), C# (2000), Go (2009) and Rust (2010).
Learning C therefore gives you a head start in all of them. More than fifty years after its creation, C remains in the top handful of most-used languages in the world.
- C was created by Dennis Ritchie at Bell Labs in 1972.
- Its ancestors are ALGOL 60 → CPL → BCPL → B → C.
- C was written to build the UNIX operating system.
- The 1978 K&R book was the first de-facto standard.
- ANSI C (C89) was the first official standard; C99, C11, C17 and C23 followed.