C भाषा का विकास
पूर्ववर्ती भाषाएं
- ALGOL (1958): संरचित प्रोग्रामिंग की नींव
- BCPL (1967): मार्टिन रिचर्ड्स - टाइपलेस, सिस्टम प्रोग्रामिंग
- B (1969): केन थॉम्पसन - BCPL का सरलीकरण, UNIX PDP-7 के लिए
C का जन्म (1972)
- डेनिस रिची ने बेल लैब्स में विकसित किया
- PDP-11 पर UNIX ऑपरेटिंग सिस्टम के लिए
- B की कमियों को दूर किया: डेटा प्रकार, पॉइंटर्स, स्ट्रक्चर्स
- 1973: UNIX कर्नेल C में पुनर्लिखित (पहला पोर्टेबल OS कर्नेल)
महत्वपूर्ण मील के पत्थर
| वर्ष | घटना |
|---|---|
| 1969 | UNIX विकास शुरू (असेंबली में) |
| 1972 | C भाषा विकास |
| 1973 | UNIX कर्नेल C में पुनर्लिखित |
| 1978 | K&R C: "The C Programming Language" पुस्तक (डेनिस रिची + ब्रायन कर्निघन) |
| 1983 | ANSI C मानकीकरण शुरू (X3J11 समिति) |
| 1989 | ANSI C मानक (C89/C90) |
| 1990 | ISO C90 (अंतर्राष्ट्रीय मानक) |
| 1999 | C99 मानक: VLA, इंलाइन, // कमेंट्स, stdint.h, complex.h |
| 2011 | C11 मानक: थ्रेड्स, एटॉमिक्स, जेनेरिक सिलेक्शन, बाउंड्स चेकिंग |
| 2018 | C18 (C17): बग फिक्स, कोई नई सुविधा नहीं |
| 2024 | C23 मानक: typeof, लैम्ब्डा एक्सप्रेशन, nullptr, एट्रिब्यूट्स, मॉड्यूल्स |
प्रमुख परियोजनाएं C में लिखी गईं
- ऑपरेटिंग सिस्टम: UNIX, Linux, Windows कर्नेल, macOS/iOS (XNU), Android
- डेटाबेस: Oracle (1983 असेंबली से C), MySQL, PostgreSQL, SQLite
- भाषाएं: Python (CPython), Ruby, Perl, PHP, Lua, JavaScript इंजन (V8, SpiderMonkey)
- एम्बेडेड: लगभग सभी माइक्रोकंट्रोलर फर्मवेयर
- कंपाइलर: GCC, LLVM/Clang, MSVC
- नेटवर्किंग: TCP/IP स्टैक, वेब सर्वर (nginx, Apache)
C की डिजाइन फिलॉसफी
- सरलता: छोटा कीवर्ड सेट, न्यूनतम रनटाइम
- दक्षता: हार्डवेयर के करीब, शून्य-ओवरहेड सिद्धांत
- पोर्टेबिलिटी: प्लेटफॉर्म-स्वतंत्र, केवल कंपाइलर बदलें
- लचीलापन: प्रोग्रामर पर भरोसा, अनिर्धारित व्यवहार से बचने की जिम्मेदारी प्रोग्रामर की
- स्थिरता: दशकों पुराना कोड आज भी कंपाइल होता है
typeof(expr)- अभिव्यक्ति का प्रकार- लैम्ब्डा एक्सप्रेशन:
[](int x){ return x*2; } nullptr- टाइप-सेफ नल पॉइंटर[[attributes]]- मानक एट्रिब्यूट सिंटैक्स#embed- बाइनरी संसाधन सम्मिलित करनाautoचर (C++ स्टाइल)constexpr- कंपाइल-टाइम स्थिरांक
आधुनिक C
C आज भी सक्रिय रूप से विकसित हो रहा है। C23 में आधुनिक सुविधाएं जोड़ी गई हैं जबकि पिछड़ी संगतता बनाए रखी गई है।