🟢 Beginner  ·  Lesson 02

History of C Language

Origin of C Language

The story of C begins not with C itself, but with the languages that came before it. Understanding this evolutionary chain — BCPL → B → C — helps you appreciate why C was designed the way it was and why it became so influential.

C was born out of a practical need: to write an operating system that was powerful, portable, and fast. Before C, operating systems were written in assembly language — which was fast but completely hardware-specific. If you moved to a different computer, you had to rewrite everything from scratch.

💡 The Core Problem C Solved

Before C, if you wrote an OS in assembly for Computer A, it would NOT run on Computer B. C gave programmers the power of low-level control WITH the portability of a higher-level language. This was revolutionary.

BCPL and B Language

BCPL (1967)

BCPL (Basic Combined Programming Language) was created by Martin Richards at the University of Cambridge in 1967. It was designed to write compilers and operating systems. Key features:

  • Typeless language — everything was a "word" (machine word)
  • Very simple — easy to implement on many machines
  • Had direct memory access using operators

BCPL was used to write the first version of the BCPL compiler itself — an early example of bootstrapping a language.

B Language (1969)

Ken Thompson at Bell Labs created the B language in 1969, based on BCPL. He stripped down BCPL to create a simpler language suited for the early Unix systems being developed at Bell Labs. B was used to write early versions of Unix, but it had serious limitations:

  • Still typeless — no distinction between integers, characters, pointers
  • Slow — because it used a word-addressable memory model
  • Couldn't efficiently support floating-point numbers

These limitations pushed Dennis Ritchie to create a new, improved language.

Dennis Ritchie & Bell Labs – Birth of C (1972)

Dennis MacAlistair Ritchie (1941–2011) was an American computer scientist who worked at Bell Labs. Between 1969 and 1973, he developed the C programming language primarily to rewrite the Unix operating system.

LanguageCreatorYearInstitution
BCPLMartin Richards1967Univ. of Cambridge
BKen Thompson1969Bell Labs, AT&T
CDennis Ritchie1972Bell Labs, AT&T

What Made C Different from B?

  • Data Types — C introduced int, char, float, double — making code safer and more efficient
  • Structs — the ability to group data together
  • Pointers with types — typed pointer arithmetic, far more powerful than B's approach
  • Preprocessor#include, #define macros
🏆 Dennis Ritchie's Legacy

Dennis Ritchie co-created both C and Unix. In 2011, he received the Japan Prize for Information and Communications. Bill Gates once said: "The tools that Dennis built — and their direct descendants — run practically everything today." He passed away on October 12, 2011.

C and UNIX – The Perfect Partnership

In 1973, Ken Thompson and Dennis Ritchie rewrote the Unix operating system kernel in C. This was a landmark moment in computing history for two reasons:

  1. Unix became one of the first operating systems written in a high-level language (instead of assembly)
  2. This proved that C was powerful enough for systems programming

Because Unix was written in C, porting Unix to a new machine just required writing a C compiler for that machine — then Unix could run on it. This portability caused Unix (and C) to spread rapidly through universities and research institutions in the 1970s.

The famous book "The C Programming Language" by Brian Kernighan and Dennis Ritchie (published 1978, also known as "K&R C") became the definitive reference for the language and is still considered one of the greatest programming books ever written.

C Language Standards Timeline

As C spread and compilers appeared from different companies, there were inconsistencies between implementations. This led to standardization efforts:

StandardYearKey Additions
K&R C1978Original C as described in "The C Programming Language" book
C89 / ANSI C1989First formal standard by ANSI. Function prototypes, void, const, enum
C901990Same as C89, adopted by ISO (minor differences)
C991999Inline functions, long long int, variable-length arrays, // comments, bool, complex
C112011Multi-threading support (_Thread_local), anonymous structs/unions, improved Unicode
C172018Bug fixes for C11, no major new features. Current most widely used standard.
C232023New attributes, bool/true/false as keywords, improved type safety
📌 Which Standard Should You Use?

For learning: use C99 or C11. Most modern compilers (GCC, Clang) support C11 by default. For exams (GATE, B.Tech): focus on ANSI C / C89. To compile with a specific standard: gcc -std=c11 program.c

Summary

  • C evolved from BCPL (1967) → B (1969) → C (1972)
  • Created by Dennis Ritchie at Bell Labs, AT&T
  • Originally developed to write the UNIX operating system
  • The 1978 K&R book established C as the universal systems language
  • Current standard is C17; latest is C23
  • C remains relevant 50+ years later in OS, embedded, and database development

Frequently Asked Questions

Who created the C programming language?
C was created by Dennis Ritchie at Bell Labs between 1969 and 1973, with 1972 usually given as its birth year. He designed it to rewrite the UNIX operating system, which had first been written in assembly language.
Why was the C language developed?
C was developed to make the UNIX operating system portable and easier to maintain. Earlier system software was written in assembly, which was tied to one machine; C gave the power of low-level programming with the readability of a higher-level language, so the same code could run on different computers.
What languages influenced C?
C grew out of an earlier language called B, written by Ken Thompson, which itself came from BCPL. Ritchie added data types and other features to B, and the result was named C as the next step after B.
What is the ANSI C standard?
ANSI C is the first official standard for the language, published in 1989 by the American National Standards Institute and adopted by ISO in 1990. Standardising C meant that code would behave consistently across compilers, and later versions such as C99, C11, C17 and C23 have continued to refine it.
Why is C still important today?
C remains central because operating systems, embedded devices, and many programming languages and libraries are built with it or on top of it. Its speed, small footprint and direct hardware access keep it relevant decades after its creation.
← Back to C Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।