0.3
— C/C++ का एक परिचय
C++ से पहले C language पहचान में आया था
C
language का अविष्कार 1972 में Dennis Ritchie ने Bell
Telephone laboratories में प्रमुख रूप से
एक system programming language के रूप में किया था । System programming language
का तात्पर्य एक ऐसे language से है, जिसका प्रयोग operating
systems लिखने में किया जाता है । C का अविष्कार करने के पीछे Ritchie का प्रमुख उद्देश्य एक ऐसा programming language प्रदान करना था, जो compile करने में आसान हो, जिसे बेहतर तरीके से memory access करने की इज़ाजत हो, जो बेहतर code देता हो और जिसे run-time support की बहुत ज्यादा ज़रूरत ना पड़े । C जैसे high level language की designing
जहाँ एक low level
language की तरह की गयी थी, वहीँ दूसरी ओर इसने platform independent
programming को भी काफी बढ़ावा दिया ।
C 1973 में इतना उपयोगी और लचीला साबित हुआ, कि Ritchie और Ken
Thompson ने UNIX
operating system का एक बहुत बड़ा
हिस्सा फिर से C language में लिख डाला ।
इससे पहले के operating systems assembly language में लिखे जाते थे । Assembly, जो किसी program को एक ही CPU में बाँध देता है, से अलग C की ज़बरदस्त portability क्षमता ने UNIX को अलग-अलग प्रकार के computers में दोबारा compile किये जाने की अनुमति दी, वो भी assembly की speed से । कहा जा सकता
है की C और Unix का भाग्य एक दुसरे से जुड़ा है । UNIX का एक operating system के रूप में सफल होने का कारण कही न कही C की बेजोड़ सफलता ही रही है ।
1978 में, Brian Kernighan और Dennis
Ritchie ने “The C
Programming Language” नाम के एक किताब का
प्रकाशन किया । इस किताब ने, जो की K&R (इसके authors के last name
के आधार पर) के नाम से भी जाना जाता
था, language की विशेषताओं का एक
अनौपचारिक परिचय दिया और साथ ही साथ C के लिए एक standard की तरह बन गया । जब portability की अत्यधिक ज़रूरत होती थी, programmers K&R के recommendation को अपनाते थे, क्यूंकि ज्यादातर compilers उस वक़्त K&R standards पर ही आधारित थें ।
1983 में, American National Standards Institute (ANSI) ने C का औपचारिक standard पेश करने के लिए एक committee का गठन किया । 1989 में (committees को कोई भी काम करने
में काफी लम्बा समय लगता है), committee ने अपना काम ख़त्म कर C89 standard launch किया, जो आज ANSI C के नाम से जाना जाता है । सन 1990 में, International Organization for Standardization (एक संस्था) ने ANSI C को अपना लिया (पर कुछ modifications के साथ)। C का ये version
C90 के रूप में जाना जाने लगा । Compilers
ANSI C/C90 पर बनने लगे, और programs जिन्हें maximum
portability की ज़रूरत थी, उनकी coding इसी standard के आधार पर की जाने लगी ।
सन 1999 के दौरान, ANSI
committee ने C का एक नया standard, C99 launch किया । इसमे कई नए features जोड़े गए, जिन्हें या तो compilers
ने पहले से ही extension
के रूप में अपना लिया था, या फिर जिनका C++ में implementation हो चूका था ।
C++
C++ (उच्चारण: सी प्लस प्लस), Bjarne Stroustrup के द्वारा Bell Labs में C के एक extension
के रूप में विकसित किया गया, जिसकी शुरुआत 1979 में ही हो गयी थी । C++ ने C language में कई नए features जोड़ें और इसलिए इसे (C++ को) C के superset के रूप में समझना ठीक होगा । पर यदि गहरायी से देखा जाये, तो ऐसा नहीं था क्यूंकि C99 के साथ कुछ ऐसे नए features भी सामने आये जो C++ में अब तक नहीं थें । C++ की प्रसिद्धी के पीछे मुख्य कारण इसका एक object-oriented
programming language होना था । आखिर एक object-oriented
programming language क्या है, और ये पुराने proramming methods से कैसे अलग है, इन सबके बारे में हम chapter 8 (Basic
object-oriented programming) में जानेंगे ।
ISO
committee ने 1998 में C++ की पुष्टि की और
फिर से 2003 (जिसे C++03 कहा जाता है) में इसका नया version दुनिया के सामने पेश किया । C++ language के दो नए updates (C++11 और C++14, जिनकी पुष्टि 2011 और 2014 में हुई) का बनना
तभी से शुरू हो चूका था, और language में नयी facilities जोड़ी जा रही थीं । इन tutorials में इन दोनों updates के साथ C++ में आये नए features के बारे में चर्चा की जाएगी ।
C और C++ की philosophy
C और C++ की design के पीछे रही phylosophy को इस प्रकार से अभिव्यक्त किया जा सकता है,
“programmer पर विश्वास करो” -- जो की अच्छा है क्यूंकि यदि programmer कुछ नया करना चाहता है जो पहले कभी नहीं किया गया, पर जिसका सही मायने में कोई मतलब हो, तो compiler उसे ऐसा करने से
नहीं रोकेगा । लेकिन ये खतरनाक भी साबित हो सकता है, क्यूंकि compiler programmer को वो सारी चीजें करने की भी अनुमति देता है, जो उम्मीद के परे result देते हों । यही एक मुख्य कारण है की क्यूँ आपके लिए C++ में क्या करना सही है और क्या करना गलत, इन दोनों बातों को अच्छी तरह से समझना ज़रूरी है । नए programmers
को यदि इन दोनों बातों की समझ ना हो, तो वे अक्सर C++ में programming करते वक़्त कुछ
छोटी-छोटी गलतियाँ कर बैठते हैं ।
ध्यान दीजिये की आपको इन tutorials में आगे बढ़ने के लिए C programming जानना ज़रूरी नहीं है । हम आपको वो सब कुछ बताएँगे जिसकी आपको ज़रूरत है (programming
में किन चीजों को avoid करना ज़रूरी है, इन सारी बातों के साथ) ।

No comments:
Post a Comment