C भाषा का इतिहास (History of C Language in Hindi)
हैलो दोस्तों, स्वागत है आपका हमारे ब्लॉग computerinhindi.in पर! आज की पोस्ट में हम C प्रोग्रामिंग भाषा (C programming language) का इतिहास topic cover करेंगे ।
इस पोस्ट में हम सबसे पहले programming languages का इतिहास देखेंगे । फिर हम C language केसे बनी इसकी पूरी कहानी क्रम से जानेंगे । हम उन सभी भाषाओं की लिस्ट भी देखेंगे जो C Language के पहले आई थी और जिनसे C को बनाने में मदद मिली। और आखिर में, C के सारे versions और updates को भी डिटेल में देखेंगे।
प्रोग्रामिंग भाषाओं का इतिहास (History of Programming Languages in Hindi)
दोस्तों, सबसे पहले समझते हैं कि प्रोग्रामिंग भाषाएं आखिर बनीं ही क्यों।
1. 1940 के दशक में कंप्यूटर जब पहली बार आए, वो इतने बड़े थे कि पूरा कमरा भर देते थे। उस समय प्रोग्राम्स machine code में लिखे जाते थे। मशीन कोड हमारे लिए समझना बहुत ही होता मुश्किल है और एक length के बाद तो समझ ही नहीं आता है। machine code में सिर्फ 0 और 1 का use होता है । जरा सोच कर देखिए,आप अपने फोन या computer में सिर्फ 0 और 1 लिखकर google सर्च करने लगे तो कितना मुश्किल होगा ।
समझने के लिए : मान लीजिए आप अपने दोस्त को कोई मैसेज भेजना चाहते हैं, लेकिन आप सिर्फ 0 और 1 का ही इस्तेमाल कर सकते हैं । कितना मुश्किल होगा, है ना? उस समय machine code में प्रोग्रामिंग भी वैसे ही थी।
2. फिर 1950 के दशक में assembly language विकास हुआ । इसमें अब छोटे-छोटे शब्द जैसे ADD, SUB, MOV का इस्तेमाल होने लगा था। जिसने programming को थोड़ा आसान बना दिया क्योंकि ये शब्द humans को भी समझ मे आते थे । यह machine code से तो बेहतर थी, लेकिन हर कंप्यूटर के लिए अलग प्रोग्राम लिखना पड़ता था।
समझने के लिए , अगर आपने एक Lenovo computer के लिए प्रोग्राम बनाया, तो शायद वह एक HP के computer पर न चले। सोचिए कितना मुश्किल होता अगर, हर एक device जो आज बना हुआ है ( mobile , laptop, computer ) उसके के लिए आपको पूरा software design करना पड़ता ( वो भी एक एक करके सभी phones और computers के सभी apps के लिए ) - same code को लाखों-करोड़ों लिखना पड़ता ।
इस सभी परेशानियों की वजह से high-level languages की ज़रूरत पड़ी। ये ऐसी भाषाएं होती हैं जो इंसानों के लिए समझने में आसान होती हैं और हर कंप्यूटर पर काम करती थीं।
3. पहली high-level language थी FORTRAN (1957), जो scientific calculations के लिए बनाई गई । जैसे, अगर आपको बड़े-बड़े गणित के सवाल हल करने हों, तो FORTRAN का use होता था ।
4. फिर 1959 में COBOL आई, जो बिज़नेस और फाइनेंस के लिए use होती थी।
5. 1960 में ALGOL आई, जिसने प्रोग्रामिंग को और आसान बनाया। ALGOL ने block structure (कोड को छोटे-छोटे हिस्सों में बांटना) और recursion (functions का खुद को कॉल करना) जैसे concepts दिए।
समझने के लिए : block structure को समझने के लिए एक डायरी को सोचिए। जैसे आप डायरी में अलग-अलग sections बनाते हैं - नोट्स, to-do लिस्ट, डायरी एंट्री। block structure भी कोड को ऐसे ही हिस्सों में बांटता है।
6. 1960 और 1970 के दशक में और भी भाषाएं बनीं। BASIC (1964) स्टूडेंट्स के लिए बहुत आसान थी। Pascal (1970) स्कूलों में पढ़ाने के लिए बनी। LISP (1958) AI के लिए बनी। लेकिन इनमें से कोई भी सिस्टम-लेवल प्रोग्रामिंग, जैसे ऑपरेटिंग सिस्टम या डिवाइस ड्राइवर्स बनाने के लिए बहुत अच्छी नहीं थी। यहीं से C language की ज़रूरत पैदा हुई।
C से पहले की प्रोग्रामिंग भाषाएं (Programming Languages Before C in Hindi)
C language से पहले कई भाषाएं थी जिनकी चर्चा हमने ऊपर की है। Dennis Ritchie ने इन सभी भाषाओं से प्रेरणा ली और C language का एक unique syntax (लिखने का तरीका), structure (कोड की बनावट) और features बनाया। नीचे एक table दी गई है, जिसमें हमने इन सारी भाषाओं को क्रम से लिस्ट किया है -
भाषा | वर्ष | मुख्य योगदान |
---|---|---|
FORTRAN | 1957 | वैज्ञानिक गणनाओं के लिए। C के operators (+, -, *, /) को प्रभावित किया |
LISP | 1958 | AI के लिए। functional programming कॉन्सेप्ट्स को प्रेरित किया |
ALGOL | 1960 | block structure, if-else, while loops, और recursion |
CPL | 1963 | ALGOL से प्रेरित। data types और pointers के शुरुआती कॉन्सेप्ट्स |
PL/I | 1964 | exception handling और multitasking |
BCPL | 1967 | सरल syntax, word-based memory। C के pointers और arrays का आधार। |
B Language | 1969 | Unix के लिए। typeless variables |
C भाषा का विकास कैसे हुआ ? (Development History of C Language in Hindi)
तो अब आते हैं C language की असली कहानी पर। ये कहानी शुरू होती है 1970 के दशक में America में स्थित Bell Labs में। वहां पर Engineers की एक टीम Unix ऑपरेटिंग सिस्टम बना रहे थे। उस समय ज्यादातर प्रोग्राम्स assembly language में लिखे जाते थे। लेकिन assembly की दिक्कत थी कि हर मशीन के लिए अलग code लिखना पड़ता था। जैसे, अगर आपने एक मशीन के लिए प्रोग्राम बनाया, तो दूसरी मशीन पर उसे फिर से लिखना पड़ता था। जो की बिल्कुल भी efficient नहीं था।
1. Ken Thompson ने 1969 में B language बनाई, जिसका use करके Unix का शुरुआती वर्जन लिखा गया। B Language , BCPL से प्रेरित थी। लेकिन अभी भी B में कई कमियां थीं। जैसे, इसमें data types नहीं थे। यानी variables को सही से define करना मुश्किल था। और ये हर कंप्यूटर पर आसानी से नहीं चलती थी।
समझने के लिए : B language को एक पुराने मोबाइल फोन की तरह सोचिए। वो काम तो करता था, लेकिन फीचर्स कम थे और हर जगह नहीं चलता था।
2. 1971 में Dennis Ritchie ने सोचा, "क्यों न B को और बेहतर करें?" उन्होंने B में data types जोड़े, जैसे int , char , float आदि। Pointers को और मज़बूत किया, जो मेमोरी को डायरेक्ट कंट्रोल करते हैं। 1972-73 तक C language तैयार हो गई। इसका नाम "C" इसलिए रखा गया क्योंकि ये B का एक upgraded version थी।
3. C को बनाने का main motive, Unix OS को फिर से लिखना। 1973 तक Unix का ज्यादातर हिस्सा C में लिखा गया। इससे Unix portable हो गया, यानी अब ये अलग-अलग मशीनों पर आसानी से चल सकता था। ये उस समय के लिए बहुत बड़ी उपलब्धि थी!
4. 1978 में Brian Kernighan और Dennis Ritchie ने मिलकर एक सुपरहिट किताब लिखी - The C Programming Language। इसे K&R C के नाम से जाना जाता है, क्योंकि ये दोनों लेखकों के नाम (Kernighan और Ritchie) के पहले अक्षरों से बना है।
यह किताब C प्रोग्रामिंग language का पहला unofficial standard बनी। इस किताब में C को आसान और व्यवस्थित तरीके से समझाया गया था। इसमें data types (जैसे int, char), control structures (जैसे if, while), functions, और pointers जैसे concepts को पहली बार साफ-साफ समझाया गया।
5. 1980 के दशक में C का इस्तेमाल इतना बढ़ गया कि हर जगह नए-नए compilers बनने लगे। लेकिन एक अब एक दिक्कत थी - हर compiler की C थोड़ा अलग थी क्योंकि हर कोई इसे अपने तरीके से लिख रहा था।
जैसे, कोई इंग्लिश में "Hello" बोले या कोई हिंदी में "नमस्ते," दोनों के मतलब वही हैं।
इससे प्रोग्राम्स काफी confusing होने लगे। इसलिए 1983 में ANSI (American National Standards Institute) ने एक कमिटी बनाई, जो C के लिए एक Official Standards बनाए।
C भाषा के संस्करण और मानक (Versions and Standards of C Language in Hindi)
C language समय के साथ और बेहतर होती गई है। इसके मानक ANSI और ISO (International Organization for Standardization) द्वारा बनाए जाते हैं। नीचे एक टेबल है, जिसमें C के सारे मुख्य versions और उनके फीचर्स लिस्ट किए गए हैं। ये टेबल आपको exams में भी मदद करेगी।
Name | वर्ष | मुख्य फीचर्स |
---|---|---|
K&R C | 1978 | data types (int, char, float, double), control structures (if, while, for, switch), functions, pointers |
ANSI C (C89) | 1989 | function prototypes, const, volatile, signed/unsigned, standard library (stdio.h, stdlib.h), void |
C99 | 1999 | inline functions, variable-length arrays, complex numbers, // comments, long long int। |
C11 | 2011 | _Atomic, threads.h, _Generic, Unicode, bounds-checking, static_assert। |
C17 | 2018 | C11 का बग फिक्स। कोई नया फीचर नहीं। |
C23 | 2024 | nullptr, _BitInt(N), enum स्पेसिफायर्स, constexpr, K&R-style हटाया। |
आइए अब हर version को डिटेल में समझते हैं।
1. K&R C (1978)
ये C का सबसे पहला version था, जो The C Programming Language किताब पर आधारित था। इसे K&R C कहते हैं, क्योंकि इसे Brian Kernighan और Dennis Ritchie ने लिखा।
फीचर्स:
- Data types: int, char, float, double
- Control structures: if, while loop, for loop, switch
- Functions
- Pointers:
- Arrays:
- Strings
लेकिन इसमें function prototypes नहीं थे। यानी functions को define करने से पहले ये चेक नहीं होता था कि parameters सही हैं या नहीं। इससे कई सारे bugs आ सकते थे।
2. ANSI C या C89 (1989)
1989 में ANSI ने C का पहला official standard बनाया। इसे 1990 में ISO ने C90 के नाम से अपनाया। ये K&R C से कहीं बेहतर था।
फीचर्स:
- Function prototypes: अब functions को पहले declare करना पड़ता था। इससे compiler चेक करता था कि parameters और return types सही हैं या नहीं। जिससे errors कम हुए।
- Keywords: const (constant variable को declare करता है), volatile (variable बदल सकता है), signed/unsigned (पॉजिटिव/नेगेटिव नंबर्स)
- Standard library: stdio.h (इनपुट/आउटपुट, जैसे printf), stdlib.h (memory allocation, जैसे malloc), math.h (sin, cos जैसे फंक्शन्स) को add किया गया।
- void type: बिना value return वाले functions बना सकते थे।
- enum: values की लिस्ट डिफाइन करने के लिए।
उदाहरण: void myFunction(int x);
लिखकर आप compiler को बता सकते थे कि function क्या लेगा और क्या return करेगा।
3. C99 (1999)
1999 में ISO ने C99 लॉन्च किया। ये एक बड़ा अपडेट था, जो C को और modern बनाता था।
फीचर्स:
- Inline functions: functions को fast करने के लिए।
- Variable-length arrays: array की size प्रोग्राम चलते समय decide कर सकते थे।
- Complex numbers: साइंटिफिक प्रोग्राम्स के लिए।
- सिंगल-लाइन comments (//): पहले सिर्फ
/* */
स्टाइल था। - long long int और unsigned long long: बड़े नंबर्स के लिए।
- Math library को बेहतर किया गया, जैसे sin(), cos(), sqrt()।
उदाहरण: int arr[n];
लिखकर आप array की साइज़ प्रोग्राम चलते समय decide कर सकते थे, जहां n एक variable है।
4. C11 (2011)
2011 में C11 आया। इसका फोकस था memory safety और multithreading।
फीचर्स:
- _Atomic keyword: atomic operations के लिए, जो multithreading में डेटा को safe रखता है।
- threads.h library: threads को मैनेज करने के लिए।
- _Generic selection: एक ही function को अलग-अलग data types के लिए इस्तेमाल कर सकते हैं।
- Unicode सपोर्ट: हिंदी, चीनी जैसी भाषाएं प्रोग्राम्स में यूज कर सकते हैं।
- Bounds-checking interfaces: memory errors को कम करता है।
- static_assert: compile-time में कोड चेक करता है।
उदाहरण: _Atomic int counter;
लिखकर आप multithreading में safe variables बना सकते थे।
5. C17 (2018)
2018 में ISO (International Organization for Standardization) ने C भाषा का एक updated version रिलीज़ किया, जिसका official नाम ISO/IEC 9899:2018 है। इसे ज्यादातर लोग C17 कहते हैं, क्योंकि इस पर काम 2017 में पूरा हुआ था। लेकिन कुछ लोग इसे C18 कहते हैं, क्योंकि इसे 2018 में officially publish किया गया। दोनों नाम सही हैं.
C17/C18, C11 का bug-fix version है। इसका मतलब है कि इसमें कोई नए फीचर्स नहीं जोड़े गए। बल्कि, इसमें C11 के bugs को ठीक किया गया और कुछ तकनीकी सुधार किए गए।
6. C23 (2023/2024)
2024 में ISO (International Organization for Standardization) ने C23 (ISO/IEC 9899:2024) लॉन्च किया। ये C का सबसे latest version है। जब ये development में था इसे C2x के नाम से भी जाना जाता था.
C23 के मुख्य फीचर्स:
- nullptr constant: ये एक नया keyword है जो NULL pointer को और cleaner और safe तरीके से डिफाइन करता है
- _BitInt(N): ये bit-precise integral types हैं, जो उन प्रोग्राम्स के लिए हैं जिन्हें exact number of bits चाहिए, जैसे embedded systems या हार्डवेयर programming में
- enum: enum (enumeration) को flexible बनाया गया। अब आप enums को ज़्यादा control के साथ define कर सकते हैं, जैसे उनके date type को define कर सकते थे
- constexpr: ये फीचर C++ से लिया गया है और compile-time calculations को support करता है
- पुराने K&R-style function definitions हटाए गए: पुराने तरीके के function definition, जैसे
int old_function(a) int a; {}
को पूरी तरह हटा दिया गया है। इस तरीके में function के parameters की जानकारी फंक्शन के नाम के बाद दी जाती थी। - deprecated features हटाए गए: कुछ पुराने और कम इस्तेमाल होने वाले फीचर्स, जैसे पुराने keywords and library, को हटा दिया गया है ताकि C और clean और modern रहे।
- Memory safety में सुधार: C23 ने memory-related errors (जैसे buffer overflows) को कम करने के लिए नए नियम और tools जोड़े हैं।
उदाहरण: int* ptr = nullptr;
लिखकर आप pointer को safely initialize कर सकते हैं।
निष्कर्ष (Conclusion)
उम्मीद है दोस्तों, आपको C भाषा का इतिहास हिंदी में पूरी तरह समझ आ गया होगा। अगर आपको ये पोस्ट पसंद आई और अगर आप चाहते हैं कि हम किसी specific टॉपिक पर पोस्ट लिखें। तो नीचे कमेंट करके बात सकते हैं।