निम्न-स्तरीय भाषा क्या है इसके प्रकार, गुण व दोष – What is Low-Level Language in Hindi

निम्न-स्तरीय भाषा क्या है? इसके प्रकार, विशेषताएँ और सीमाएँ सरल हिंदी में समझें। मशीन भाषा और एसेम्बली भाषा की व्याख्या।

निम्न-स्तरीय भाषा (Low-Level Language)

Low-Level Language, वे कम्प्यूटर प्रोग्रामिंग लैंग्वेज होती है, जो कम्प्यूटर हार्डवेयर से ज्यादा निकटता से संबंधित होती हैं।

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

“Close to the hardware”

इसके अलावा इस भाषा को, मशीन-कोड या मशीन-लैंग्वेज में बदलने के लिए, किसी भी ट्रांसलेटर प्रोग्राम जैसे कि – कंपाइलर, इंटरप्रेटर आदि की आवश्यकता नहीं होती है,

परंतु द्वितीय जनरेशन की प्रोग्रामिंग लैंग्वेज जैसे कि – असेम्बली लैंग्वेज, अपने निर्देशों को मशीन-कोड में परिवर्तित करने के लिए, एक बहुत ही छोटे और सरलतम ट्रांसलेटर अथवा प्रोसेसर का प्रयोग करती है जिसे असेम्बलर कहते हैं और असेम्बलर द्वारा ट्रांसलेट किया गया कोड सीधे ही प्रोसेसर द्वारा एग्जीक्यूट कर दिया जाता है।

लो-लेवल लैंग्वेज में लिखे गए प्रोग्राम का एग्जीक्यूशन, हाई लेवल लैंग्वेज में लिखे गए प्रोग्राम की तुलना में काफी तेज गति से होता है, क्योंकि लो लेवल लैंग्वेज कम्प्यूटर हार्डवेयर से सीधे सम्बन्धित होती है।

पर low-level language में प्रोग्राम लिखना काफी कठिन होता है इसके लिए कम्प्यूटर के हार्डवेयर और इसके कॉन्फिगरेशन की गहरी जानकारी होनी चाहिए।


Example of low-level language –

  • Machine language
  • Assembly language

 

निम्न स्तरीय भाषा के गुण एवं दोष

Merits of low-level language – निम्न स्तरीय भाषा के गुण –

  • हाई-लेवल लैंग्वेज में लिखे गए प्रोग्राम की तुलना में, लो-लेवल लैंग्वेज द्वारा लिखे गए प्रोग्राम का एग्जीक्यूशन काफी तेज होता है, क्योंकि यह भाषा हार्डवेयर से सीधे संबंध रखती है। प्रोसेसर (CPU) इन्हें जल्दी या सीधे ही समझ लेता है।
  • असेंबली भाषा को छोड़कर, लो-लेवल लैंग्वेज को मशीनी भाषा में, ट्रांसलेट करने की जरूरत नहीं होती है।


Demerits of low-level language – निम्न-स्तरीय भाषा के दोष-

  • इस भाषा मे प्रोग्राम लखना काफी कठिन होता है।
  • प्रोग्राम लिखने में त्रुटि होने की सम्भावना ज्यादा होती है।
  • त्रुटि होने पर उनको ढूंढना व उसमें संशोधन करना आसान नहीं होता है।
  • समय बहुत ज्यादा लगता है निर्देशों/ प्रोग्राम्स को लिखने में।
  • इस भाषा में प्रोग्राम लिखने के लिए हार्डवेयर व इसके कॉन्फिगरेशन की गहरी जानकारी होनी चाहिए।
  • लो-लेवल लैंग्वेज में लिखे गए प्रोग्राम पोर्टेबल नहीं होते हैं, अर्थात इस भाषा में, जिस कम्प्यूटरके लिए प्रोग्राम लिखे जाते हैं, वह केवल उसी कम्प्यूटर पर रन हो सकते हैं अन्य कम्प्यूटर पर नहीं। अत: यह लैंग्वेज प्लेटफार्म डिपेंडेंट होती है।

 

Types of Low-Level Language (निम्न-स्तरीय भाषा के प्रकार)

  • Machine language
  • Assembly language

Machine language – मशीनी भाषा –

मशीन लैंग्वेज, कम्प्यूटर की वास्तविक (original) भाषा होती है। इस भाषा को किसी भी प्रकार के translator program (अनुवादक) की आवश्यकता नहीं होती है। इस भाषा में लिखे गए प्रोग्राम को CPU सीधे ही एग्जीक्यूट कर देता है। यह Lowest Level Language (निम्नतम स्तर की भाषा) है।

चूँकि मशीनी भाषा को किसी भी ट्रांसलेटर प्रोग्राम के द्वारा ट्रांसलेट करने की आवश्यकता नहीं होती, इसलिए इस भाषा में लिखे गए प्रोग्राम का एग्जीक्यूशन काफी तेज गति से होता है।

कम्प्यूटर की मशीनी भाषा (machine language) केवल दो अंको 0 व 1 से मिलकर बनी होती है, इन्हीं दो अंकों के संयोजन से दुनिया के सभी प्रकार के डेटा व निर्देश बने होते हैं।

केवल दो अंको के, प्रयोग होने के कारण इस भाषा को बाइनरी लैंग्वेज (बाइनरी कोड/ मशीन कोड) व अंकों को बाइनरी डिजिट कहते हैं।

  • मशीन लैंग्वेज केवल दो अंकों 0 व 1 से मिलकर बनी होती है। इन अंकों को बाइनरी डिजिट या न्यूमैरिक कोड कहते हैं, और मशीनी भाषा को मशीन कोड, बाइनरी कोड अथवा बाइनरी लैंग्वेज कहते हैं।
  • मशीनी भाषा अथवा बाइनरी भाषा एकमात्र ऐसी भाषा होती है जिसे कम्प्यूटर (सीपीयू), बिना किसी ट्रांसलेशन के, सीधे ही समझ लेता है।
  • कम्प्यूटर द्वारा किसी भी प्रोग्रामिंग भाषा में लिखे गए निर्देशों/प्रोग्रामों आदि को एग्जीक्यूट करने से पहले, उसे ट्रांसलेटर प्रोग्राम (compiler, interpreter, assembler) की मदद से मशीनी भाषा (0,1) में परिवर्तित करना पड़ता है। सभी प्रकार के डेटा को कम्प्यूटर अपनी वास्तविक भाषा में बदलकर ही process करता है।

बाइनरी (Binary) शब्द की उत्पत्ति लैटिन शब्द – binaries से हुई है जिसका मतलब है –

Based on two – द्विआधारी

अथवा  consisting of two

उदाहरण – 35 को binary code अथवा machine language में (100011)  लिखा जाता है।

Binary Language
Example of a Binary language (Machine language) program

मशीन लैंग्वेज में तैयार किए गए प्रत्येक निर्देश (instruction) के दो भाग होते हैं –

पहला भाग – Operation Code अथवा Op Code (ऑपरेशन कोड अथवा ऑप कोड)

एवं दूसरा भाग Operand अथवा Location Code (ऑपरेन्ड अथवा लोकेशन कोड)


Operation Code अथवा Op Code (ऑपरेशन कोड अथवा ऑप कोड) –

कम्प्यूटर (CPU), को यह बताता है कि, कौन सा operation या task, परफॉर्म करना है।

ऑपरेशन कोड को ऑर्डर कोड अथवा टास्क कोड भी कहते हैं।

Operand अथवा Location Code (ऑपरेन्ड अथवा लोकेशन कोड) –

कम्प्यूटर (CPU), को यह बताता है कि data एवं  अन्य निर्देश, मेमोरी के किस लोकेशन से प्राप्त करना है और किस लोकेशन में संग्रहित करना है।

मशीन लैंग्वेज का प्रयोग करके लिखे गए निर्देश या प्रोग्राम, प्रत्येक कम्प्यूटर (CPU) के लिए विशिष्ट होते हैं, अर्थात एक कम्प्यूटर (CPU) के लिखे गए प्रोग्राम या निर्देश, दूसरे कम्प्यूटर (CPU) पर नहीं चलाए जा सकते हैं।

इसका मतलब है की मशीन लैंग्वेज पोर्टेबल नहीं होती है, इस भाषा का प्रयोग कर लिखे गए प्रोग्राम, मशीन डिपेंडेंट अथवा प्लेटफार्म डिपेंडेंट होते हैं, अर्थात जिस कम्प्यूटर (CPU) के लिए लिखे गए हैं उसी में रन होंगे अन्य कम्प्यूटर (CPU) में नहीं।

Note – यहॉं CPU का मतलब Central Processing Unit अर्थात Processor से है, चूँकि कम्प्यूटर मे CPU ही सारे प्रोग्राम्स का क्रियान्वयन (execution) करता है। इसलिए कम्प्यूटर के साथ कोष्टक में CPU लिखा गया है।

प्रोग्रामर के लिए काफी जटिल कार्य होता है मशीन कोड का इस्तेमाल करके प्रोग्राम लिखना।

इसमें त्रुटि होने की संभावना ज्यादा होती है और त्रुटि होने पर प्रोग्राम को debug (संशोधित) करना भी कठिन कार्य होता है। और यह सब करने में काफी समय लगता है।

यह human readable लैंग्वेज नहीं है।

मशीन लैंग्वेज – फर्स्ट जनरेशन लैंग्वेज की श्रेणी में आती है एवं यह lowest level language है।

प्रोग्रामिंग के शुरुआत में जब अन्य भाषाओं का विकास नहीं हुआ था, तब सारे प्रोग्राम इसी भाषा का प्रयोग करके लिखे जाते थे।

बाइनरी लैंग्वेज में प्रोग्राम लिखने के लिए प्रोग्रामर को कम्प्यूटर हार्डवेयर व सीपीयू-आर्किटेक्चर के संबंध में गहरी जानकारी होना अति आवश्यक है।

आर्किटेक्चर = आंतरिक संरचना

कम्प्यूटर का CPU (सेंट्रल प्रोसेसिंग यूनिट), गणना करने के लिए प्रत्येक निर्देश को विद्युत संकेतों (इलेक्ट्रिकल सिग्नल्स) के रूप में ग्रहण करता है ये विद्युत संकेत 0 व 1 के रूप में होते हैं और इन विद्युत संकेतों 0 व 1 को पल्स अथवा बाइनरी संख्या अथवा न्यूमैरिक कोड कहते हैं।

और एक बाइनरी संख्या को bit कहते हैं –

1 bit = 0 अथवा 1

इन्हीं विद्युत संकेतों (0 व 1) का प्रयोग CPU अरिथमेटिक व लॉजिकल गणना करने के लिए, एवं मेमोरी में डेटा संग्रहित करने के लिए करता है।

अतः कम्प्यूटर (CPU) केवल 0 व 1 की भाषा ही समझता है। और इन्हीं 0 व 1 के संयोजन या क्रम से बनी भाषा मशीनी भाषा कहलाई।

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

Characteristics of Machine Language – मशीनी भाषा की विशेषताएँ
  • मशीन लैंग्वेज, Lowest level language एवं First Generation Programming language है।
  • यह कम्प्यूटर की आधारभूत भाषा है। एवं Human readable नहीं है।
  • इस लैंग्वेज में सारे निर्देश/ प्रोग्राम/ एवं data ( text, image, audio, video आदि) केवल दो अंकों 0 व 1 के संयोजन से ही बने होते हैं।
  • दो अंको का उपयोग होने के कारण इस भाषा को – बाइनरी भाषा भी कहते हैं।
  • इस भाषा में लिखे गए programs को ट्रांसलेट करने की आवश्यकता नहीं होती है, सीपीयू इन्हें सीधे ही समझकर एग्जीक्यूट कर देता है।
  • यह भाषा प्लेटफार्म डिपेंडेंट होती है। प्रत्येक प्रोग्राम केवल उसी CPU पर रन होते हैं जिस CPU के लिए लिखे गए हैं। अतः मशीनी भाषा पोर्टेबल नहीं है।
  • मशीन लैंग्वेज को ट्रांसलेटर प्रोग्राम की आवश्यकता नहीं होती है। सीपीयू इन्हें डायरेक्टली समझ लेता है और दिए गए निर्देशों के अनुसार टास्क परफॉर्म करता है।

उदाहरण – 01010110, 11001001, 00100100


Merits of Machine Language – मशीनी भाषा के गुण / लाभ –
  1. Machine language, कम्प्यूटर (CPU) की अपनी ओरिजिनल भाषा होती है। इसे सीपीयू सीधे ही पढ़ व समझ लेता है। इसके लिए किसी ट्रांसलेटर प्रोग्राम की आवश्यकता नहीं होती है।
  2. इस भाषा में लिखे गए प्रोग्राम का क्रियान्वयन सबसे तेज गति से होता है जिस समय की बचत होती है।
  3. लोवेस्ट लेवल लैंग्वेज में लिखे गए प्रोग्राम, मेमोरी में कम स्पेस ग्रहण करते हैं।
Demerits of Machine Language – मशीनी भाषा के अवगुण/दोष –
  1. Machine dependent or processor specific – (मशीन डिपेंडेंट या प्रोसेसर स्पेसिफिक)

एक कम्प्यूटर (CPU) के लिए लिखे गए प्रोग्राम, दूसरे कम्प्यूटर (CPU) पर नहीं चलाया जा सकता है, क्योंकि प्रत्येक कम्प्यूटर की आंतरिक संरचना (आर्किटेक्चर) अलग-अलग होती है एवं कार्य करने हेतु भिन्न-भिन्न विद्युत संकेतों (0 व 1) की जरूरत होती है।

यही वजह है कि प्रत्येक कम्प्यूटर की अपनी अलग मशीनी भाषा होती है।

अतः मशीन लैंग्वेज में लिखे गए प्रोग्राम पोर्टेबल नहीं होते हैं।

  1. Difficult to write a Program – मशीन लैंग्वेज में, डायरेक्टली प्रोग्राम लिखना काफी कठिन कार्य है। इसके लिए प्रोग्रामर को कम्प्यूटर के आंतरिक संरचना (CPU) की गहरी जानकारी होनी चाहिए।

क्योंकि इस भाषा में प्रोग्राम लिखने के लिए प्रोग्रामर को अनेक निर्देशों (codes) को संख्या के रूप में याद करना पड़ता है।

  1. Difficult to correct (सुधारने में कठिन) – त्रुटि होने की संभावना ज्यादा होती है, त्रुटि होने पर उसको खोजना और सुधारना (debug करना) कठिन होता है।
  2. Time consuming process – मशीनी भाषा में प्रोग्राम लिखने में बहुत अधिक समय लगता है।
  3. Human readable लैंग्वेज नहीं है।

Assembly Language – असेम्बली लैंग्वेज

Assembly Language (ASM) अथवा Symbolic machine Code

मशीनी भाषा में प्रोग्राम बनाना काफी जटिल कार्य था, और त्रुटि को ढूंढना वठीक करना भी काफी मुश्किल था, इसलिए प्रोग्रामिंग की संरचना को सुधारने के लिए, एक ऐसी प्रोग्रामिंग भाषा का विकास किया गया, जिसमें मशीन कोड ( 0 व 1) के स्थान पर अल्फान्यूमैरिक चिन्हों (alphanumeric symbols) का प्रयोग किया गया और ये अल्फा न्यूमेरिक सिम्बल्स, data व instructions को व्यक्त करते थे। इन्हीं अल्फा न्यूमेरिक सिम्बल्स को निमोनिक कोड या सिर्फ निमोनिक्स (Mnemonic code अथवा Mnimonics) भी कहा जाता है।

सामान्यतः इन symbols (प्रतीक/  चिन्हों) का निर्माण, शब्दों के लघु रूप (abbreviation) से किया गया था, ताकि प्रोग्रामर व सामान्य लोग भी समझ सकें।

  • उदाहरण – Add for Addition
  • MOV for Move
  • LDA for Load
  • SUB for Subtraction
  • TRAN for Translation
  • CMP for Compare

अत: असेंबली भाषा, एक लो-लेवल प्रोग्रामिंग लैंग्वेज है जिसमें डेटा व निर्देशों को व्यक्त करने के लिए मशीन-कोड की जगह प्रतीक अथवा चिन्हों (symbols) का प्रयोग किया जाता है इसलिए इस भाषा को सिम्बॉलिक लैंग्वेज (symbolic language) भी कहते हैं।

और प्रयोग होने वाले सिम्बल्स को न्यूमैनिक कोड अथवा निमोनिक कोड कहते हैं।

प्रोग्रामर द्वारा इन निमोनिक कोड की मदद से प्रोग्राम बनाना और इनको याद रखना आसान था। साथ ही समय की बचत भी होती थी एवं त्रुटि को सरलता से ढूंढ कर ठीक किया जा सकता था।

लेकिन, चूँकि हम जानते हैं कि कंप्यूटर (सीपीयू) केवल मशीन कोड को ही समझता है, इसलिए असेंबली भाषा में लिखे गए प्रोग्राम को मशीनी भाषा में बदलने के लिए एक छोटे से ट्रांसलेटर प्रोग्राम का प्रयोग किया जाता था जिसे अम्सेबलर कहते हैं।

Assembly Language – असेम्बली लैंग्वेज

असेंबली लैंग्वेज को सेकंड जनरेशन लैंग्वेज के रूप में समझा जाता है।

Characteristics of Assembly Language – असेंबली लैंग्वेज की विशेषताऍं
  • असेंबली लैंग्वेज एक low-level language है।
  • यह द्वितीय पीढ़ी की भाषा समझी जाती है।
  • इसमें मशीन कोड (0 व 1) के स्थान पर symbols अथवा निमोनिक कोड का इस्तेमाल प्रोग्राम को लिखने के लिए किया जाता है।
  • इस भाषा का प्रयोग करके, बनाए गए प्रोग्राम को मशीन लैंग्वेज में बदलने के लिए, एक ट्रांसलेटर प्रोग्राम असेंबलर का प्रयोग किया जाता है।
  • असेंबली लैंग्वेज सीपीयू स्पेसिफिक होती है, प्रत्येक कंप्यूटर (सीपीयू) के लिए अलग-अलग होती है। अत: मशीन डिपेंडेंट होती है।
  • Human readable होती है।
Merits / Advantages of Assembly Language – असेंबली लैंग्वेज के गुण /लाभ:
  • असेंबली लैंग्वेज में symbols का प्रयोग होने के कारण, प्रोग्रामिंग करना अपेक्षाकृत सरल होता है।
  • गलतियां होने की संभावना कम होती है।
  • गलती होने पर उन्हें ढूंढना व ठीक करना आसान होता है।
  • यह प्रोग्रामर के समय व प्रयास की बचत करती है।
  • इस भाषा का महत्वपूर्ण लाभ यह है कि, प्रोग्रामर को data एवं instructions के मेमोरी लोकेशन को याद रखने की आवश्यकता नहीं पड़ती है।

Demerits / Disadvantages of Assembly Language – असेंबली लैंग्वेज के अवगुण / हानि –
  • असेंबली भाषा की सबसे बड़ी कमी यह है कि, यह मशीनी भाषा की तरह ही मशीन डिपेंडेंट (मशीन पर आधारित) होती है।
  • प्रत्येक कंप्यूटर (सीपीयू) की, अपनी एक अलग असेंबली लैंग्वेज होती है जिसके कारण एक कंप्यूटर के लिए असेंबली भाषा में तैयार किया गया प्रोग्राम दूसरे कंप्यूटर पर नहीं चलाया जा सकता है।
  • मशीन /हार्डवेयर स्पेसिफिक होने के कारण, को प्रोग्राम लिखने के लिए हार्डवेयर (सीपीयू) और मेमोरी लोकेशन का गहरा ज्ञान होना अति आवश्यक है।
  • हाई लेवल लैंग्वेज की तुलना में, प्रोग्रामिंग के लिए यह एक कठिन वज्यादा समय लेने वाली भाषा है। व त्रुटि को ढूंढना भी आसान नहीं है। पर मशीनी भाषा जितना कठिन नहीं है।

Q1. निम्न-स्तरीय भाषा क्या होती है?
उत्तर: निम्न-स्तरीय भाषा (Low-Level Language) वह भाषा होती है जो मशीन के बहुत नज़दीक होती है जैसे कि मशीन लैंग्वेज और एसेम्बली लैंग्वेज।

Q2. निम्न-स्तरीय भाषा के प्रकार कौन-कौन से हैं?
उत्तर: दो प्रमुख प्रकार हैं:

  • मशीन लैंग्वेज (Machine Language)

  • एसेम्बली लैंग्वेज (Assembly Language)

Q3. निम्न-स्तरीय भाषा के क्या लाभ हैं?
उत्तर: तेज निष्पादन गति, हार्डवेयर पर अधिक नियंत्रण और मेमोरी की कुशलता से उपयोग।

Q4. निम्न-स्तरीय भाषा के क्या नुकसान हैं?
उत्तर: कठिन सिंटैक्स, डिबगिंग में समस्या और पोर्टेबिलिटी की कमी।

Q5. क्या निम्न-स्तरीय भाषाएँ आज भी प्रयोग होती हैं?
उत्तर: हाँ, एम्बेडेड सिस्टम्स, डिवाइस ड्राइवर और सिस्टम प्रोग्रामिंग में आज भी इनका उपयोग होता है।


उच्च स्तरीय भाषा एवं निम्न स्तरीय भाषा में अन्तर

Download eBook - कम्प्यूटर फण्डामेन्टल एवं इन्फॉर्मेशन टेक्नोलॉजी

error: Content is protected !!