Monday, April 19, 2010

मशीन भाषा

मशीनी भाषा
मशीनी भाषा कंप्यूटर की आधारभुत भाषा है, यह केवल 0 और 1 दो अंको के प्रयोग से निर्मित श्रृंखला से लिखी जाती है। यह एकमात्र कंप्यूटर प्रोग्रामिंग भाषा है जो कि कंप्यूटर द्वारा सीधे-सीधे समझी जाती है। इसे किसी अनुवादक प्रोग्राम का प्रयोग नही करना होता है। इसे कंप्यूटर का मशीनी संकेत भी कहा जाता है।
कंप्यूटर का परिपथ इस प्रकार तैयार किया जाता है कि यह मशीनी भाषा को तुरन्त पहचान लेता है और इसे विधुत संकेतो मे परिवर्तित कर लेता है। विधुत संकेतो की दो अवस्थाए होती है- हाई और लो अथवा Anticlock wise & clock wise, 1 का अर्थ है Pulse अथवा High तथा 0 का अर्थ है No Pulse या low।
मशीनी भाषा मे प्रत्येक निर्देश के दो भाग होते है- पहला क्रिया संकेत (Operation code अथवा Opcode) और दूसरा स्थिति संकेत (Location code अथवा Operand)। क्रिया संकेत कंप्यूटर को यह बताता जाता है कि क्या करना है और स्थिति संकेत यह बताता है कि आकडे कहां से प्राप्त करना है, कहां संग्रहीत करना है अथवा अन्य कोइ निर्देश जिसका की दक्षता से पालन किया जाना है।

मशीनी भाषा की विशेषताए
मशीनी भाषा मे लिखा गया प्रोग्राम कंप्यूटर द्वारा अत्यंत शीघ्रता से कार्यांवित हो जाता है। इसका मुख्य कारण यह है कि मशीनी भाषा मे दिए गए निर्देश कंप्यूटर सीधे सीधे बिना किसी अनुवादक के समझ लेता है और अनुपालन कर देता है।

मशीनी भाषा की परिसीमाएं
मशीनी भाषा कंप्यूटर के ALU (Arithmatic Logic Unit) एवं Control Unit के डिजाइन अथवा रचना, आकार एवं Memory Unit के word की लम्बाई द्वारा निर्धारित होती है। एक बार किसी ALU के लिये मशीनी भाषा मे तैयार किये गए प्रोग्राम को किसी अन्य ALU पर चलाने के लिये उसे पुन: उस ALU के अनुसार मशीनी भाषा का अध्ययन करने और प्रोग्राम के पुन: लेखन की आवश्यकता होती है।
मशीनी भाषा मे प्रोग्राम तैयार करना एक दुरूह कार्य है। इस भाषा मे प्रोग्राम लिखने के लिये प्रोग्रामर को मशीनी निर्देशो या तो अनेकों संकेत संख्या के रूप मे याद करना पडता था अथवा एक निर्देशिका के संपर्क मे निरंतर रहना पडता था। साथ ही प्रोग्रामर को कंप्यूटर के Hardware Structure के बारे मे सम्पूर्ण जानकारी भी होनी चाहिये थी।
विभिन्न निर्देशो हेतु चूंकि मशीनी भाषा मे मात्र दो अंको 0 और 1 की श्रृंखला का प्रयोग होता है। अत: इसमे त्रुटि होने की सम्भावना अत्यधिक है। और प्रोग्राम मे त्रुटि होने पर त्रुटि को तलाश कर पाना तो भुस मे सुइ तलाशने के बराबर है।
मशीनी भाषा मे प्रोग्राम लिखना एक कठिन और अत्यधिक समय लगाने वाला कार्य है। इसीलिये वर्तमान समय मे मशीनी भाषा मे प्रोग्राम लिखने का कार्य नगण्य है।


उच्च स्तरीय क्रमादेशन भाषा
मशीनी भाषा और असेम्बली भाषा द्वारा क्रमादेश तैयार करने मे आने वाली कठिनाई को देखते हुए कम्प्यूटर वैज्ञानिक इस शोध मे जुट गए कि अब इस प्रकार की क्रमादेशन भाषा तैयार की जानी चाहिये जो कि कम्प्यूटर मशीन पर निर्भर न हो। कम्प्यूटर प्रोग्रामिंग भाषा के विकास का यह अगला कदम था। असेम्बलर के स्थान पर कम्पाइलर और इन्टरप्रेटर का विकास किया गया।अब कम्प्यूटर प्रोग्राम लिखने के लिये मशीनी भाषा को अंकीय क्रियान्वयन संकेतो के स्थान पर अक्षर चिन्ह स्मरणोपकारी का प्रयोग किया गया।कम्प्यूटर मे प्रयोग की जाने वाली वह भाषा जिसमे अंग्रेजी अक्षरो,संख्याओ एवं चिन्हो का प्रयोग करके प्रोग्राम लिखा जाता है, उसे उच्च स्तरीय प्रोग्रामिंग भाषा कहा जाता है।इस भाषा मे प्रोग्राम लिखना प्रोग्रामर के लिये बहुत ही आसान होता है,क्योंकि इसमे किसी भी निर्देश मशीन कोड मे बदलकर लिखने की आवश्यकता नही होती । जैसे -BASIC, COBOL,FORTRAN,PASCALअब तो उच्च स्तरीय प्रोग्रामिंग भाषाओ का अत्यन्त विकास हो चुका है। इन प्रोग्रमिंग भाषाओ को कार्यानुसार चार वर्गो मे विभाजित किया गया है-(१) वैज्ञानिक प्रोग्रामिंग भाषाएं- इनका प्रयोग मुख्यत: वैज्ञानिक कार्यो के लिये प्रोग्राम बनाने मे होता है,परन्तु इनमे से कुछ भाषाएं ऎसी भी होती है जो वैज्ञानिक कार्यो के अलावा अन्य कार्यो को भी उतनी ही दक्षता से करती है।जैसे-ALGOL(Algorithmic language),BASIC,PASCAL,FORTRAN, आदि है।(२) व्यवसायिक प्रोग्रामिंग भाषाएं-व्यापारिक कार्यो से सम्बंधित जैसे-बही खाता, रोजानामचा, स्टाक आदि का लेखा जोखा आदि व्यापारिक प्रोग्रामिंग भाषाओ के प्रोग्राम द्वारा अत्यन्त सरलता से किया जा सकता है।जैसे-PL1(Programing language 1),COBOL, DBASE आदि। (३) विशेष उद्देश्य प्रोग्रामिंग भाषाएं-ये भाषाएं विभिन्न कार्यो को विशेष क्षमता के साथ करने के लिये प्रयोग की जाती है।जैसे-(अ)APL360- पेरीफिरल युक्तियां सर्वश्रेष्ठ अनुप्रयोग हेतु प्रयोग की जाती है। यह भाषा 1968 से प्रचलन मे आई।(ब)LOGO- लोगो का विकास मात्र कम्प्यूटर शिक्षा को सरल बनाने हेतु किया गया। इस भाषा मे चित्रण इतना सरल है कि छोटे बच्चे भी चित्रण कर सकते है।लोगो भाषा मे चित्रण के लिये एक विशेष प्रकार की त्रिकोणाकार आकृति होती है जिसे टरटल कहते है। मॉनीटर पर प्रदर्शित रहता है लोगो भाषा के निर्देशो द्वारा यह टरटल, किसी भी तरफ घूम सकता है और आगे-पीछे चल सकता है। जब टरटल चलता है तो पीछे अपने मार्ग पर लकीर बनाता चलता है। इससे अनेक प्रकार के चित्रो को सरलता से बनाया जा सकता है।(४) बहुउद्देशीय भाषाएं- जो भाषाएं समान रूप से भिन्न-भिन्न प्रकार के अनेक कार्यो को करने की क्षमता रखती है, उन्हे बहुउद्देशीय भाषाएं कहते है।जैसे- BASIC,PASCAL,PL1

उच्च स्तरीय प्रोग्रामिंग भाषा की विशेषताएं
(१) उच्च स्तरीय प्रोग्रामिंग भाषाए कम्प्यूटर मशीन पर निर्भर नही करती। यह एक अत्यन्त महत्वपूर्ण उपलब्धि है। प्रोग्राम के प्रयोगकर्ता के कम्प्यूटर बदलने पर अर्थात विभिन्न ALU और Control unit मे भी यह प्रोग्राम सूक्ष्मतम सुधार के बाद समान रूप से चलता है।(२)इन भाषाओ मे प्रयोग किये जाने वाले शब्द सामान्य अंग्रेजी भाषा मे होते है।(३)इन प्रोग्रामिंग भाषाओ मे गलतियो की सम्भावना कम होती है तथा गलतियो को जल्द ढूंढकर सुधारा जा सकता है।प्रयोग किया गया अनुवादक कम्पाइलर अथवा इन्टरप्रेटर प्रोग्राम मे किस लाइन और निर्देश मे गलती है यह स्वयं ही सूचित कर देता है।(४) प्रोग्राम लिखने मे कम समय और श्रम लगता है।

उच्च स्तरीय प्रोग्रामिंग भाषा की परिसीमाएं
(१)इन भाषाओ मे लिखा गया प्रोग्राम चलने मे मशीनी भाषा और असेम्बली भाषा मे लिखे गये प्रोग्राम की अपेक्षा कम्प्यूटर की मुख्य स्मृति मे अधिक स्थान घेरता है।(२)इन भाषाओ मे लचीलापन नही होता है अनुवादको के स्वयं नियन्त्रित होने के कारण यह प्रोग्रामर के नियन्त्रण मे नही होता है। लचीलेपन से तात्पर्य है कि कुछ विशेष कार्य इन प्रोग्रामिंग भाषाओ मे नही किए जा सकते है अथवा अत्यन्त कठिनाई से साथ किए जा सकते है। फिर भी उच्च स्तरीय प्रोग्रामिंग भाषा की विशेषताएं उसकी परिसीमाओ की अपेक्षा अधिक प्रभावी होती है। अत: वर्तमान मे यही भाषाएं प्रयोग की जाती है।

उच्च स्तरीय भाषाओ का परिचय
प्रोग्रामिंग भाषाओ के विकास के इतिहास पर नजर डाली जाए तो डॉ। ग्रेस हापर का नाम महत्वपूर्ण स्थान रखता है। इन्होने ही सन 1952 के आस-पास उच्च स्तरीय भाषाओ का विकास किया था। जिसमे एक कम्पाइलर का प्रयोग किया गया था। डॉ हापर के निर्देशन मे दो उच्च स्तरीय प्रोग्रामिंग भाषाओ को विकसित किया गया पहली-FLOWMATIC और MATHEMATICS। FLOWMATIC एक व्यवसायिक प्रोग्रामिंग भाषा थी और MATHEMATICS एक अंकगणितीय गणनाओ मे प्रयुक्त की जाने वाली भाषा। तब से लेकर अब तक लगभग 225 उच्च स्तरीय प्रोग्रामिंग भाषाओ का विकास हो चुका है। उदाहरण:FORTRAN, COBOL, BASIC, PASCAL।

असेम्बली भाषा
मशीनी भाषा द्वारा प्रोग्राम तैयार करने मे आने वाली कठिनाईयो को दूर करने हेतु कम्प्यूटर वैज्ञानिको ने एक अन्य कम्प्यूटर प्रोग्राम भाषा का निर्माण किया। इस कम्प्यूटर प्रोग्रामिंग भाषा को असेम्बली भाषा कहते है। कम्प्यूटर प्रोग्रामिंग भाषा के विकास का पहला कदम यह था कि मशीनी भाषा को अंकीय क्रियांवयन संकेतो के स्थान पर अक्षर चिन्ह स्मरणोपकारी का प्रयोग किया गया। स्मरणोपकारी का अर्थ यह है कि -एसी युक्ति जो हमारी स्मृति मे वर्ध्दन करें। जैसे घटाने के लिये मशीनी भाषा मे द्विअंकीय प्रणाली मे 1111 और दशमलव प्रणाली मे 15 का प्रयोग किया जाता है, अब यदि इसके लिये मात्र sub का प्रयोग किया जाए तो यह प्रोग्रामर की समय मे सरलता लाएगी।
पारिभाषिक शब्दो मे, वह कम्प्यूटर प्रोग्रामिंग भाषा जिसमे मशीनी भाषा मे प्रयुक्त अंकीय संकेतो के स्थान पर अक्षर अथवा चिन्हो का प्रयोग किया जाता है, असेम्बली भाषा अथवा symbol language कहलाती है।असेम्बली भाषा मे मशीन कोड के स्थान पर ’नेमोनिक कोड’ का प्रयोग किया गया जिन्हे मानव मस्तिष्क आसानी से पहचान सकता था जैसे-LDA(load),Tran(Translation),JMP(Jump) एवं इसी प्रकार के अन्य नेमोनिक कोड जिन्हे आसानी से पहचाना व याद रखा जा सकता था। इनमे से प्रत्येक के लिये एक मशीन कोड भी निर्धारित किया गया,पर असेम्बली कोड से मशीन कोड मे परिवर्तन का काम, कम्प्यूटर मे ही स्थित एक प्रोग्राम के जरिये किया जाने लगा,इस प्रकार के प्रोग्राम को असेम्बलर नाम दिया गया। यह एक अनुवादक की भांति कार्य करता है।


असेम्बली भाषा की विशेषताएं
(१)नेमोनिक कोड और आकडो हेतु उपयुक्त नाम के प्रयोग के कारण इस प्रोग्रामिंग भाषा को अपेक्षाकृत अधिक सरलता से समझा जा सकता है।(२)इस प्रोग्रामिंग भाषा मे कम समय लगता है।(३)इसमे गलतियो को सरलता से ढूंढकर दूर किया जा सकता है।(४)इस प्रोग्रामिंग भाषा मे मशीनी भाषा की अनेक विशेषताओ का समावेश है।

असेम्बली भाषा की परिसीमाए
(१)चूंकि इस प्रोग्रामिंग भाषा मे प्रत्येक निर्देश चिन्हो एवं संकेतो मे दिया जाता है और इसका अनुवाद सीधे मशीनी भाषा मे होता है अत: यह भाषा भी हार्डवेयर पर निर्भर करती है। भिन्न ALU एवं Controling Unit के लिये भिन्न प्रोग्राम लिखना पडता है।(२)प्रोग्राम लिखने के लिये प्रोग्रामर को हार्डवेयर की सम्पूर्ण जानकारी होनी आवश्यक है।

No comments:

Post a Comment