🟢 Beginner  ·  Lesson 02

History of C Language

C Language की History

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

C Language की उत्पत्ति

C की कहानी C से नहीं बल्कि उन languages से शुरू होती है जो इससे पहले थीं। इस evolution chain को समझना — BCPL → B → C — आपको यह समझने में मदद करेगा कि C को इस तरह क्यों design किया गया और यह इतनी influential क्यों बनी।

C एक practical ज़रूरत से पैदा हुई: ऐसा operating system लिखना जो powerful, portable और fast हो। C से पहले operating systems assembly language में लिखे जाते थे — जो fast तो थी लेकिन पूरी तरह hardware-specific थी। किसी दूसरे computer पर जाते ही सब कुछ दोबारा लिखना पड़ता था।

💡 C ने कौन सी problem solve की?

C से पहले अगर आपने Computer A के लिए assembly में OS लिखा, तो वो Computer B पर नहीं चलता। C ने programmers को low-level control की शक्ति दी WITH एक high-level language की portability। यह क्रांतिकारी था।

BCPL और B Language

BCPL (1967)

BCPL (Basic Combined Programming Language) को Martin Richards ने 1967 में University of Cambridge में बनाया था। यह compilers और operating systems लिखने के लिए design की गई थी। मुख्य features:

  • Typeless language — सब कुछ एक "word" (machine word) था
  • बहुत simple — कई machines पर implement करना आसान
  • Operators का उपयोग करके direct memory access

B Language (1969)

Ken Thompson ने Bell Labs में 1969 में BCPL के आधार पर B language बनाई। उन्होंने BCPL को simplify करके Bell Labs में develop हो रहे early Unix systems के लिए उपयुक्त बनाया। B की serious limitations थीं:

  • अभी भी typeless — integers, characters, pointers में कोई फर्क नहीं
  • Slow — word-addressable memory model की वजह से
  • Floating-point numbers को efficiently support नहीं कर सकती थी

इन्हीं limitations की वजह से Dennis Ritchie ने एक नई, बेहतर language बनाई।

Dennis Ritchie और Bell Labs – C का जन्म (1972)

Dennis MacAlistair Ritchie (1941–2011) एक American computer scientist थे जो Bell Labs में काम करते थे। 1969 और 1973 के बीच, उन्होंने primarily Unix operating system को rewrite करने के लिए C programming language develop की।

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

C, B से कैसे अलग थी?

  • Data Types — C में int, char, float, double आए — code safe और efficient बना
  • Structs — data को एक साथ group करने की ability
  • Typed Pointers — typed pointer arithmetic, B से बहुत अधिक powerful
  • Preprocessor#include, #define macros
🏆 Dennis Ritchie की विरासत

Dennis Ritchie ने C और Unix दोनों co-create किए। 2011 में उन्हें Information and Communications के लिए Japan Prize मिला। Bill Gates ने एक बार कहा था: "Dennis के बनाए tools — और उनके direct descendants — आज practically सब कुछ चलाते हैं।" उनका निधन 12 अक्टूबर 2011 को हुआ।

C और UNIX – एक Perfect Partnership

1973 में, Ken Thompson और Dennis Ritchie ने Unix operating system kernel को C में rewrite किया। यह computing history में एक landmark moment था दो कारणों से:

  1. Unix उन पहले operating systems में से एक बना जो assembly की बजाय high-level language में लिखे गए
  2. इसने साबित किया कि C systems programming के लिए काफी powerful है

क्योंकि Unix C में लिखा था, किसी नई machine पर Unix port करने के लिए बस उस machine के लिए C compiler लिखना था — फिर Unix उस पर run कर सकता था। इस portability की वजह से Unix (और C) 1970 के दशक में universities और research institutions में तेज़ी से फैले।

C Language Standards का Timeline

StandardYearमुख्य Additions
K&R C1978Original C — "The C Programming Language" book
C89 / ANSI C1989पहला formal standard। Function prototypes, void, const, enum
C991999Inline functions, long long int, // comments, bool
C112011Multi-threading support, anonymous structs/unions
C172018C11 के bug fixes। अभी सबसे ज़्यादा use होने वाला standard।
C232023Latest standard — नए attributes, बेहतर type safety
📌 कौन सा Standard Use करें?

सीखने के लिए: C99 या C11 use करें। Exams (GATE, B.Tech) के लिए: ANSI C / C89 पर focus करें। Specific standard के साथ compile करने के लिए: gcc -std=c11 program.c

सारांश (Summary)

  • C का evolution: BCPL (1967) → B (1969) → C (1972)
  • Dennis Ritchie ने Bell Labs, AT&T में बनाई
  • Originally UNIX operating system लिखने के लिए develop की गई
  • 1978 की K&R book ने C को universal systems language बनाया
  • Current standard C17 है; latest C23 है
  • 50+ साल बाद भी C, OS, embedded और database development में relevant है
← Back to C Tutorial