C Language की History
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 है