My Hindi Forum

My Hindi Forum (http://myhindiforum.com/index.php)
-   Tech Talks (http://myhindiforum.com/forumdisplay.php?f=20)
-   -   सी की दुनिया (http://myhindiforum.com/showthread.php?t=1858)

ABHAY 06-01-2011 01:21 PM

सी की दुनिया
 
C भाषा को १९७२ के आस-पास डेनिस रिची, जो AT&T (American Telephone and Telegraph) की बेल लैब में काम करते थे, ने विकसित किया और एक बार जब यह प्रोग्रामरों के हाथ लगा तो जैसे कंप्युटिंग की दुनिया हीं बदल गई। तब से ले कर आज तक C भाषा या इसके परिवार के हीं किसी प्रोग्रामिंग भाषा ने कंप्युटिंग की दुनिया पर राज किया है। C परिवार की अन्य भाषाओं में हम निम्न भाषाओं का नाम ले सकते हैं - C++, Java, C# (सी शार्प).।
C भाषा का विकास, युनिक्स औपरेटिंग सिस्टम के साथ जुड़ा हुआ है और इनके विकास की कहानी भी कम रोचक नहीं है। साठ के दशक में जब बड़े कम्प्युटरों (मेन फ़्रेम और मिनी) का बोलबाला था तब हर कम्प्युटर के साथ उसके लिए विशेष तौर से विकसित औपरेटिंग सिस्टम और अन्य प्रोग्राम बनाए जाते थे। यानि तब की बात आज की तरह नहीं थी, कि कंप्युटर कोई भी हो औपरेटिंग सिस्टम विंडो ही होगा (७५%+)। तब हर कंप्युटर के साथ अलग औपरेटिंग सिस्टम और अलग प्रोग्रामों की श्रृंखला... यानि कंप्युटिंग पर महारत हासिल करना आसान न था और बहुत कुछ सिखना होता था।
तब एक विचार आया कि क्यों न एक ऐसा औपरेटिंग सिस्टम बनाया जाए जो कई तरह के मशीनों पर चले, और इसी विचार ने AT&T और MIT औरGEको एक ऐसे हीं सिस्टम को विकसित करने की सोंच दी और तब इस प्रोजेक्ट को कहा गया - "MULTICS (MULTiplex Information and Computing Service)". काम १९६४ में शुरु हुआ, समय बीतता गया पर AT&T जैसा चाहता था वैसा कुछ बन नहीं रहा था। AT&T, जो इस रीसर्च में मुख्य पैसा लगाने वाली कम्पनी थी, ने बाद में अपने को इससे अलग कर लिया। उस प्रोजेक्ट से जुड़े लोगों के लिए यह एक बुरा समय था, उन पर जाने अनजाने एक "Failed Project" का हिस्सा होने का तमगा चिपका था। वे लोग बड़ी मुश्किल से AT&T के मैनेजमेन्ट को यह समझा पाए कि उन्हें एक पुरानी मशीन दी जाए ताकि वे कुछ कर सकें (ऊन्हें तब एक PDP-7 मशीन काम करने के लिए दे दी गई, तब का इस मशीन का सबसे नया मौडेल PDP-11 था) उन्हें इतना तो समझ में आ रहा था कि अगर औपरेटिंग सिस्टम किसी ३G भाषा में हो तो उसका कई तरह के मशीनों पर चलना संभव हो जाएगा, पर तब तक के सारे औपरेटिंग सिस्टम उस कंप्युटर में इस्तेमाल हो रही माईक्रोप्रोसेरर की असेम्बली भाषा या मशीनी भाषा (Language of Bits) में बनाए जाते थे।

ABHAY 06-01-2011 01:25 PM

Re: सी की दुनिया
 
उपर्युक्त प्रोग्रामिंग भाषा की कमी ने केन थौमसन (बेल लैब के इंजीनीयर, जो मल्टिक्स प्रोजेक्ट का हिस्सा थे) को एक नई किस्म की प्रोग्रामिंग भाषा को विकसित करने की प्रेरणा दी (यह भाषा B नाम से बनी, अब यह विलुप्ति के कगार पर है)। पर यह B भी, जो नये किस्म के औपरेटिंग सिस्टम का लक्ष्य था, उसे पुरा न कर सकी। डेनिस रिची तब AT&T में अपनी युनिवर्सीटी से एक रीसर्च स्कौलर के रुप में आए थे और उन्हें केन थौम्सन के साथ काम करना था। रिची ने प्रोजेक्ट को समझा और फ़िर केन के B भाषा को भी। फ़िर उन्होंने यह नयी भाषा बनाई - C. इन प्रोग्रामिंग भाषाओं के ऐसे विचित्र नामकरण के पीछे भी कहानी है। असल में केन ने अपनी भाषा B, एक पूर्व विकसित भाषा, मार्टिन रिचर्ड्स की BCPL (Basic Combined Programming Language)पर आधारित रखी थी और इसी भाषा के नाम के पहले अक्षर "B" को अपनी नयी भाषा का नाम बनाया। और जब रिची ने B पर आधारित नई भाषा बनाई तो उन्होंने इसी परम्परा का पालन किया और BCPL के अगले अक्षर "C" को अपने भाषा का नाम दिया। (आगे जब AT&Tके हीं जार्ने स्ट्राउस्ट्रुप ने जब C भाषा पर आधारित एक नई भाषा बनाई (हम आप इस भाषा को आज C++के नाम से जानते हैं), तो कई ने कहा की इसे BCPL के आधार पर P कहा जाए तो कई ने कहा कि B के बाद C तो अब इसको D कहा जाए। (वैसे D नाम की भी एक प्रोग्रामिंग भाषा है)
रिची के इस C जो एक ३G प्रोग्रामिंग भाषा है, में जब ओपरेटिंग सिस्टम लिखा गया तो इसका नाम हुआ UNIX, इसके बाद Unix और C की जुगलबंदी ने कंप्युटिंग की दुनिया हीं बदल दी और आज कंप्युटर कई रुपों में हमारे चारो तरफ़ मौजुद है। कहते हैं कि जिस रफ़्तार से कंप्युटिंग का विकास हुआ, अगर यही रफ़तार औटोमोबाईल की दुनिया में होता तो आज रोल्स-रायस आकार और कीमत में माचिस की डिब्बी की तरह होता...........

ABHAY 06-01-2011 01:25 PM

Re: सी की दुनिया
 
आजकल मानव- क्रिया कलाप के हर क्षेत्र में कंप्यूटरों का बोलबाला होता जा रहा है। यह कंप्यूटरों की बढ़ती शक्ति और उपयोगिता को दर्शाता है। कंप्यूटरों की यह शक्ति और उपयोगिता मानव जरूरतों को कंप्यूटर प्रोग्रामों के माध्यम से ऐसे रूपों में प्रस्तुत करने से जुड़ी है, जिन्हें कंप्यूटर समझ सके, तथा अपनी अपार गणना शक्ति का उपयोग करते हुए इन जरूरतों की पूर्ति कर सके।

ABHAY 06-01-2011 01:26 PM

Re: सी की दुनिया
 
जैसा कि आप जानते हैं, कंप्यूटर दो ही स्थितियों को नैसर्गिक रूप से पहचान सकता है - अपने परिपथों में बिजली के बहाव के होने और न होने की। इन दोनों दशाओं को 1 और 0 के माध्यम से दर्शाया जाता है। अन्य शब्दों में कहें, तो कंप्यूटर की भाषा में केवल दो ही शब्द होते हैं, 1 और 0, और हमें कंप्यूटरों से बातचीत करते समय हर बात इन्हीं दो शब्दों में कहनी होती है। यही तो कारण है कि बाईनरी नम्बर सिस्टम को कंप्युटिंग की दुनिया में इतना महत्व दिया जाता है।

ABHAY 06-01-2011 01:27 PM

Re: सी की दुनिया
 
कंप्यूटरों के शुरुआती दौर में कंप्यूटर प्रोग्राम सचमुच इस मूलभूत भाषा में लिखे जाते थे। इस भाषा को यंत्रभाषा (मशीनलैंग्वेज) कहा जाता है। लेकिन यंत्र भाषा में प्रोग्राम लिखने का काम अत्यंत उबाऊ और श्रम-साध्य है। जैसे-जैसे कंप्यूटर अधिक जटिल कार्यों में लगाए जाने लगे, यंत्रभाषा अपर्याप्त सिद्ध होने लगी। तब प्रोग्राम-लेखकों ने उससे उन्नत भाषा का विकास किया, जिसमें यंत्र भाषा के बार-बार प्रयोग में आने वाले अंक-क्रमों के लिए सूचक शब्द (nemonic code) रखे गए। मान लीजिए कि दो संख्याओं को जोड़ने के लिए यंत्र भाषा में यह क्रम चलता हो - 1100101010001101। तो इस अंक-विन्यास के लिए add (जोड़ो) सूचक शब्द रख देने पर, प्रोग्राम में जहां-जहां यह अंक-विन्यास (sequence) आता हो, वहां इस सूचक शब्द का प्रयोग काफी होगा। इसी प्रकार से कंप्यूटर द्वारा किए जाने वाले अन्य कार्यों को सूचित करने वाले अंक-विन्यासों के लिए भी शब्द रखे गए। इन शब्द-प्रतीकों की भाषा को ऐसेंब्ली भाषा कहा जाता है। ऐसेंब्ली भाषा में लिखे गए प्रोग्रामों को यंत्रभाषा में बदलने के लिए विशेष प्रोग्राम लिखे गए, जिन्हें ऐसेंब्लर कहा जाता है। प्रोग्रामर तो अपना प्रोग्राम ऐसेंब्ली भाषा में लिखेगा, लेकिन ऐसेंब्लर उस प्रोग्राम को यंत्रभाषा में परिवर्तित करेगा, ताकि कंप्यूटर प्रोग्राम को समझ सके।

ABHAY 06-01-2011 01:28 PM

Re: सी की दुनिया
 
लेकिन बहुत जल्द ऐसेंब्ली भाषा भी अनुपयुक्त सिद्ध होने लगी। यह तब हुआ जब निजी कंप्यूटरों (Personal Computers or PC)का दौर आरंभ हुआ। ऐसेंब्ली भाषा यंत्र-निर्भर भाषा है, यानी ऐसेंब्ली भाषा में लिखे गए प्रोग्राम हर प्रकार के कंप्यूटरों पर नहीं चल सकते, वरन उन्हीं कंप्यूटरों पर चल सकते हैं, जिनके लिए वे लिखे गए हैं। जब शुरू-शुरू में थोड़े ही प्रकार के कंप्यूटर होते थे, तो यह स्थिति संतोष जनक थी, लेकिन जैसे-जैसे विभिन्न प्रकार के कंप्यूटर बनने लगे, तो ऐसी स्थिति हो गई कि एक कंप्यूटर के लिए लिखे गए प्रोग्राम अन्य कंप्यूटरों के लिए काले अक्षर भैंस बराबर हो गए। एक और भी कारण था। शुरुआत में तो कंप्युटर का मुख्य काम कंप्युटिंग हीं था पर धीरे-धीरे कंप्युटर का प्रयोग और भी अन्य कामों के लिए होने लगा, और तब प्रोग्रामरों के प्रोग्राम ज्यादा जटिल होने लगे और सूचक आधारित (Nemonics based) ऐसेंब्ली भाषा अब थोड़ा मुश्किल पैदा करने लगी।

ABHAY 06-01-2011 01:29 PM

Re: सी की दुनिया
 
इस स्थिति से निपटने के लिए कंप्यूटर विशेषज्ञों ने कुछ उच्च स्तर की भाषाएं विकसित कीं, जो यंत्र-मुक्त थीं, यानी उनमें लिखे गए प्रोग्राम अनेक प्रकार के कंप्यूटरों पर चल सकते थे। (ऐसी पहली भाषा फ़ोर्ट्रान है) इन भाषाओं में एक खुबी और थी, ये सब अंग्रेजी जैसी (ध्यान रहे, अंग्रेजी नहीं अंग्रेजी जैसी) हैं, जिससे इनको सीखना समझना आसान हो गया (पहले की विकसित भाषाओं की तुलना में)। इन भाषाओं में लिखे गए प्रोग्रामों को यंत्र भाषा में बदलने के लिए विशेष प्रकार के दुभाषिए (इंन्टेरप्रेटर) और संकलक (कंपाइलर) प्रोग्राम लिखे गए। बेसिक, कोबोल, पास्कल आदि इस प्रकार की भाषाएं हैं।

ABHAY 06-01-2011 01:31 PM

Re: सी की दुनिया
 
कुछ समय तक तो ये भाषाएं पर्याप्त रहीं, लेकिन जैसे-जैसे कंप्यूटरों की शक्ति बढ़ने लगी और उनके लिए लिखे गए प्रोग्रामों की जटिलता आसमान छूने लगी, तो ये भाषाएं भी जवाब दे गईं।
इसका मुख्य कारण यह था कि इन भाषाओं में निर्देश रेखीय क्रम में रहता है (Sequential), यानी निर्देश जिस क्रम में प्रोग्राम में लिखे होते हैं, कंप्यूटर उसी क्रम में उनका निष्पादन करता है। लेकिन जटिल प्रोग्रामों में कंप्यूटर को एक निर्देश के परिणामों के आधार पर अनेक विकल्पों में से एक को चुनकर उसका पहले निष्पादन करने की आवश्यकता रहती है। बेसिक आदि प्रारंभिक उच्च-स्तरीय भाषाओं में इस प्रकार की स्थितियों से निपटने की क्षमता नहीं थी।

ABHAY 06-01-2011 01:33 PM

Re: सी की दुनिया
 
इसी संदर्भ में पास्कल, सी आदि अधिक पूर्ण एवं शक्तिशाली उच्च-स्तरीय भाषाओं का विकास हुआ। इनमें प्रोग्राम के बहाव को नियंत्रित करने के लिए अनेक उपाय हैं। सी इन सभी भाषाओं में से सर्वाधिक उन्नत है, क्योंकि वह प्रोग्राम-लेखक को कंप्यूटर को यंत्र-स्तर पर नियंत्रित करने की क्षमता भी देती है और इस स्तर पर यह पुरानी पीढ़ी की भाषा ऐसेंब्ली के ज्यादा करीब है। इसी विशेषता के कारण पिछले कुछ दशकों में सी भाषा सर्वाधिक उपयोग में लाई जाने वाली भाषा बन गई थी। (आज भी यह अपने बदले हुए रूप में, जावा के रूप में विश्व की अग्रणी प्रोग्रामिंग की भाषा बनी हुई है)

ABHAY 06-01-2011 01:34 PM

Re: सी की दुनिया
 
सी की लोक-प्रियता के कुछ अन्य कारण भी हैं। युनिक्स प्रचालन तंत्र (ओपरेटिंग सिस्टम/operating system) सी भाषा में ही लिखा गया है और यह बड़े कंप्यूटरों में सर्वाधिक लगाया जाने वाला प्रचालन तंत्र है। अतः इन कंप्यूटरों के लिए प्रोग्राम लिखने के लिए सी भाषा अधिक उपयुक्त है। अभी हाल में सी भाषा के साथ वस्तु-केंद्रित प्रोग्रामिंग (object-oriented programming or OOPs)के तत्व जोड़ कर एक नई भाषा सी++ विकसित की गई है, जो सी से भी अधिक प्रचार-प्रसार पा गई है। चूंकि सी++, सी का ही विकसित रूप है, इसलिए उसमें निपुण होने के लिए सी की अच्छी जानकारी बहुत जरूरी है।


All times are GMT +5. The time now is 07:49 PM.

Powered by: vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
MyHindiForum.com is not responsible for the views and opinion of the posters. The posters and only posters shall be liable for any copyright infringement.