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.
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.
| Language | Creator | Year | Institution |
|---|---|---|---|
| BCPL | Martin Richards | 1967 | Univ. of Cambridge |
| B | Ken Thompson | 1969 | Bell Labs, AT&T |
| C | Dennis Ritchie | 1972 | Bell 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,#definemacros
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:
- Unix became one of the first operating systems written in a high-level language (instead of assembly)
- 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:
| Standard | Year | Key Additions |
|---|---|---|
| K&R C | 1978 | Original C as described in "The C Programming Language" book |
| C89 / ANSI C | 1989 | First formal standard by ANSI. Function prototypes, void, const, enum |
| C90 | 1990 | Same as C89, adopted by ISO (minor differences) |
| C99 | 1999 | Inline functions, long long int, variable-length arrays, // comments, bool, complex |
| C11 | 2011 | Multi-threading support (_Thread_local), anonymous structs/unions, improved Unicode |
| C17 | 2018 | Bug fixes for C11, no major new features. Current most widely used standard. |
| C23 | 2023 | New attributes, bool/true/false as keywords, improved type safety |
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 से पहले अगर आपने 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 की।
| Language | Creator | Year | Institution |
|---|---|---|---|
| BCPL | Martin Richards | 1967 | Univ. of Cambridge |
| B | Ken Thompson | 1969 | Bell Labs, AT&T |
| C | Dennis Ritchie | 1972 | Bell 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,#definemacros
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 था दो कारणों से:
- Unix उन पहले operating systems में से एक बना जो assembly की बजाय high-level language में लिखे गए
- इसने साबित किया कि 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
| Standard | Year | मुख्य Additions |
|---|---|---|
| K&R C | 1978 | Original C — "The C Programming Language" book |
| C89 / ANSI C | 1989 | पहला formal standard। Function prototypes, void, const, enum |
| C99 | 1999 | Inline functions, long long int, // comments, bool |
| C11 | 2011 | Multi-threading support, anonymous structs/unions |
| C17 | 2018 | C11 के bug fixes। अभी सबसे ज़्यादा use होने वाला standard। |
| C23 | 2023 | Latest standard — नए attributes, बेहतर type safety |
सीखने के लिए: 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 है