निम्नलिखित में से कौन-सा भाषा अनुवादक नहीं है ?
- (a)असेंब्लर
- (b)लिंकर
- (c)इंटरप्रेटर
- (d)कंपाइलर
उत्तर
क्यों
सही उत्तर — B, (b) लिंकर । स्टेम में निषेध मोटे तिरछे अक्षरों में छपा है, इसलिए यहाँ वह ढूँढ़ना है जो भाषा अनुवादक नहीं है । भाषा अनुवादक उस प्रोग्राम को कहते हैं जो एक भाषा में लिखे प्रोग्राम को दूसरी भाषा में — प्रायः स्रोत कूट को मशीन कूट में — बदलता है । इस कसौटी पर चार में से तीन खरे उतरते हैं और एक नहीं । लिंकर अनुवाद करता ही नहीं । वह उन ऑब्जेक्ट फ़ाइलों को, जो अनुवादक पहले ही बना चुका है, आपस में जोड़कर एक चलने योग्य फ़ाइल बनाता है । बड़े प्रोग्राम कई अलग-अलग फ़ाइलों में लिखे जाते हैं और उनमें पुस्तकालय के तैयार फलन भी बुलाए जाते हैं ; हर फ़ाइल अलग से संकलित होकर अपनी ऑब्जेक्ट फ़ाइल बनाती है, पर उसमें दूसरी फ़ाइलों के फलनों और चरों के पते ख़ाली छूट जाते हैं । लिंकर का काम इन्हीं बाह्य निर्देशों को हल करना, पतों को फिर से व्यवस्थित करना और सब टुकड़ों को एक निष्पादनीय फ़ाइल में मिला देना है । उसके सामने जो आता है वह पहले से मशीन कूट है और जो निकलता है वह भी मशीन कूट ही है — भाषा कहीं नहीं बदलती, इसलिए वह अनुवादक नहीं । इसी परिवार का एक और सदस्य लोडर है, जो निष्पादनीय फ़ाइल को द्वितीयक भंडारण से मुख्य स्मृति में लाकर चलने के लिए तैयार करता है ; वह भी अनुवादक नहीं है । दोनों को अनुवाद के बाद की कड़ियाँ मानिए । अनुवादकों की गिनती तीन है और तीनों इस प्रश्न के शेष विकल्पों में मौजूद हैं : असेंब्लर असेंबली भाषा को मशीन कूट में बदलता है, कंपाइलर उच्चस्तरीय भाषा के पूरे प्रोग्राम को एक बार में मशीन कूट में बदलता है, और इंटरप्रेटर उसी उच्चस्तरीय प्रोग्राम को एक-एक कथन करके पढ़ता और चलाता जाता है । इसलिए इस प्रश्न का उत्तर लिंकर है ।
अन्य विकल्प क्यों गलत हैं
- (a)असेंब्लर — असेंब्लर भाषा अनुवादक ही है, इसलिए यह उत्तर नहीं हो सकता । वह असेंबली भाषा में लिखे प्रोग्राम को मशीन कूट में बदलता है । असेंबली भाषा निम्नस्तरीय भाषा है, जिसमें प्रत्येक अनुदेश के लिए संख्या के स्थान पर संकेताक्षर लिखे जाते हैं — जोड़ के लिए ADD, स्मृति से लाने के लिए MOV, इसी प्रकार के स्मृति-सहायक शब्द । मशीन इन शब्दों को नहीं समझती, वह केवल शून्य और एक की श्रृंखला समझती है, इसलिए बीच में एक अनुवादक चाहिए और वही असेंब्लर है । असेंबली अनुदेश और मशीन अनुदेश के बीच प्रायः एक-से-एक का संबंध होता है, जिससे यह अनुवाद बहुत सीधा रहता है । अनुवाद हो रहा है, अतः असेंब्लर इस प्रश्न की परिभाषा में पूरी तरह आता है और निषेध का उत्तर नहीं बनता ।
- (c)इंटरप्रेटर — इंटरप्रेटर भी अनुवादक है, इसलिए यह भी उत्तर नहीं हो सकता । अंतर केवल अनुवाद की विधि का है । कंपाइलर पूरे प्रोग्राम को एक बार में पढ़कर उसका मशीन कूट तैयार करता है, जिसे बाद में जितनी बार चाहें चलाया जा सकता है ; इंटरप्रेटर एक-एक कथन पढ़ता है, उसका अनुवाद करता है, उसे तुरंत चलाता है और फिर अगले कथन पर जाता है । इसीलिए इंटरप्रेटर से चलने वाले प्रोग्राम धीमे पड़ते हैं, पर त्रुटि उसी कथन पर रुककर बता दी जाती है, जिससे विकास और परीक्षण आसान हो जाता है । बेसिक जैसी पुरानी भाषाएँ और आज की कई भाषाएँ इसी शैली में चलती हैं । अनुवाद हो रहा है — केवल क्रमशः — इसलिए इंटरप्रेटर अनुवादकों की सूची में ही रहता है ।
- (d)कंपाइलर — कंपाइलर तो भाषा अनुवादक का सबसे प्रसिद्ध उदाहरण है, इसलिए यह उत्तर नहीं हो सकता । वह उच्चस्तरीय भाषा में लिखे पूरे स्रोत प्रोग्राम को पढ़कर उसका समतुल्य मशीन कूट या ऑब्जेक्ट कूट तैयार करता है, और साथ ही व्याकरण की त्रुटियों की सूची भी देता है । संकलन कई चरणों में होता है — शाब्दिक विश्लेषण, वाक्य विश्लेषण, अर्थ विश्लेषण, मध्यवर्ती कूट, अनुकूलन और अंत में लक्ष्य कूट का निर्माण । यहीं यह भी स्पष्ट हो जाता है कि लिंकर कंपाइलर का विरोधी नहीं, उसके बाद की कड़ी है : कंपाइलर हर स्रोत फ़ाइल की ऑब्जेक्ट फ़ाइल बनाता है और लिंकर उन ऑब्जेक्ट फ़ाइलों को जोड़कर चलने योग्य फ़ाइल बनाता है । अनुवाद का काम कंपाइलर करता है, जोड़ने का लिंकर ।
अवधारणा
किसी प्रोग्राम को कंप्यूटर पर चलाने योग्य बनाने में कई प्रोग्राम मिलकर काम करते हैं, और उन्हें दो भागों में बाँटकर देखना चाहिए — जो भाषा बदलते हैं, और जो भाषा बदले बिना कोई और काम करते हैं । भाषा बदलने वाले तीन हैं । असेंब्लर असेंबली भाषा को मशीन कूट में बदलता है । कंपाइलर उच्चस्तरीय भाषा के पूरे प्रोग्राम को एक बार में मशीन कूट या ऑब्जेक्ट कूट में बदलता है और त्रुटियों की सूची देता है । इंटरप्रेटर उसी उच्चस्तरीय प्रोग्राम को एक-एक कथन करके अनुवादित करता और चलाता है, इसलिए वह धीमा है पर त्रुटि खोजने में सहायक । भाषा न बदलने वाले दो प्रमुख हैं । लिंकर अलग-अलग संकलित ऑब्जेक्ट फ़ाइलों और पुस्तकालय के फलनों को जोड़कर एक निष्पादनीय फ़ाइल बनाता है और बाह्य निर्देशों के पते हल करता है ; यह जोड़ना संकलन के समय स्थैतिक रूप से भी हो सकता है और चलने के समय गतिशील रूप से भी, जैसा साझा पुस्तकालयों में होता है । लोडर उस निष्पादनीय फ़ाइल को मुख्य स्मृति में लाकर नियंत्रण उसे सौंपता है । इनके अलावा प्रीप्रोसेसर संकलन से पहले स्रोत पर काम करता है और डीबगर चलते प्रोग्राम की जाँच में सहायता करता है ।
यह प्रश्न वस्तुतः वर्गीकरण का प्रश्न है, न कि परिभाषा का — चारों नाम किसी न किसी भाषा-प्रसंस्करण उपकरण के हैं, पर उनमें से एक ही उस श्रेणी से बाहर है जिसका नाम स्टेम में लिया गया है । कंप्यूटर से जुड़े प्रश्नों में यह ढाँचा बार-बार लौटता है : एक श्रेणी बताई जाती है और तीन सदस्यों के साथ एक बाहरी नाम रख दिया जाता है । इसलिए कंप्यूटर की तैयारी में केवल परिभाषाएँ नहीं, सूचियाँ याद कीजिए — अनुवादक कौन-कौन हैं, स्मृति के प्रकार कौन-से हैं, इनपुट और आउटपुट युक्तियाँ कौन-सी हैं, फ़ाइल स्वरूप किस श्रेणी के हैं । इस प्रश्नपत्र के कंप्यूटर खंड में यही शैली Q69 में फ़ाइल स्वरूपों पर और Q68 में रजिस्टरों पर दोहराई गई है ।
मुख्य तथ्य
- भाषा अनुवादक वह प्रोग्राम है जो एक भाषा में लिखे प्रोग्राम को दूसरी भाषा में — प्रायः स्रोत कूट को मशीन कूट में — बदलता है ।
- असेंब्लर असेंबली भाषा के संकेताक्षर वाले अनुदेशों को मशीन कूट में बदलता है ; दोनों के बीच प्रायः एक-से-एक संबंध होता है ।
- कंपाइलर उच्चस्तरीय भाषा के पूरे प्रोग्राम का एक बार में अनुवाद करता है और व्याकरण की त्रुटियों की सूची देता है ।
- इंटरप्रेटर एक-एक कथन का अनुवाद करके उसे तुरंत चलाता है ; इससे निष्पादन धीमा होता है पर त्रुटि उसी कथन पर पकड़ में आ जाती है ।
- लिंकर अनुवादक नहीं है : वह अलग-अलग ऑब्जेक्ट फ़ाइलों और पुस्तकालय के फलनों को जोड़कर एक निष्पादनीय फ़ाइल बनाता है ।
- लिंकर बाह्य निर्देशों के पते हल करता है ; यह जोड़ना संकलन के समय स्थैतिक भी हो सकता है और चलने के समय गतिशील भी ।
- लोडर निष्पादनीय फ़ाइल को द्वितीयक भंडारण से मुख्य स्मृति में लाकर चलने के लिए तैयार करता है ; वह भी अनुवाद नहीं करता ।
- संकलन के चरण हैं — शाब्दिक विश्लेषण, वाक्य विश्लेषण, अर्थ विश्लेषण, मध्यवर्ती कूट, अनुकूलन और लक्ष्य कूट का निर्माण ।
आगे की तैयारी
सामान्य भ्रम
- लिंकर और लोडर को अनुवादक मान लेना । दोनों अनुवाद के बाद की कड़ियाँ हैं और भाषा नहीं बदलतीं ।
- यह मान लेना कि लिंकर कंपाइलर का विकल्प है । वह उसके बाद आता है — कंपाइलर ऑब्जेक्ट फ़ाइल बनाता है, लिंकर उन्हें जोड़ता है ।
- निषेधात्मक प्रश्न में निषेध चूक जाना । इस पेपर में ऐसे प्रश्नों का निषेध मोटे तिरछे अक्षरों में छपा है, फिर भी पढ़ते समय ध्यान दीजिए ।
- कंपाइलर और इंटरप्रेटर को एक ही चीज़ के दो नाम समझ लेना । अंतर पूरे प्रोग्राम और एक-एक कथन के अनुवाद का है ।
- असेंब्लर को असेंबली भाषा समझ लेना । असेंबली भाषा वह भाषा है, असेंब्लर उसका अनुवाद करने वाला प्रोग्राम ।
कंप्यूटर का खंड इस प्रश्नपत्र में दो जगह आता है और उसका स्तर आधारभूत रहता है — शब्दावली, वर्गीकरण और अंग-प्रत्यंग के काम । इस प्रश्न जैसा ढाँचा सबसे आम है : एक श्रेणी बताइए और चार नामों में से बाहरी नाम पहचानिए । ऐसे प्रश्नों की तैयारी सूचियों से होती है, परिभाषाओं से नहीं । अनुवादक तीन हैं — असेंब्लर, कंपाइलर, इंटरप्रेटर ; उनके साथ काम करने वाले पर अनुवादक न कहलाने वाले दो हैं — लिंकर और लोडर । इसी तरह स्मृति की सूची, इनपुट-आउटपुट युक्तियों की सूची और फ़ाइल स्वरूपों की सूची अलग-अलग बनाइए । एक और बात ध्यान रखिए : हिन्दी माध्यम के अभ्यर्थी को यहाँ सारे नाम देवनागरी में लिप्यंतरित मिलते हैं, इसलिए पढ़ते ही मन में उनका अंग्रेज़ी रूप रख लीजिए, क्योंकि आगे की पढ़ाई की सामग्री उसी रूप में मिलेगी ।
संबंधित PYQ
EPFO_EOAO_2020_Q68खोलें व हल करें →Which one of the following registers is used to keep track of the next instruction to be executed ?
- (a) Memory address register
- (b) Memory buffer register
- (c) Program counter
- (d) Memory data register
उत्तर(c) Program counter
इसी कंप्यूटर खंड का प्रश्न — अगला अनुदेश किस रजिस्टर में रखा जाता है ।
EPFO_EOAO_2020_Q69खोलें व हल करें →Which one of the following is not an audio file format ?
- (a) MIDI
- (b) WAV
- (c) SWF
- (d) MPEG
उत्तर(c) SWF
इसी शैली का एक और निषेधात्मक वर्गीकरण प्रश्न — कौन-सा ऑडियो फ़ाइल स्वरूप नहीं है ।
अभ्यास
- practice — not a real PYQ
निम्नलिखित में से कौन-सा प्रोग्राम अलग-अलग संकलित ऑब्जेक्ट फ़ाइलों को जोड़कर एक निष्पादनीय फ़ाइल बनाता है ?
- (a)कंपाइलर
- (b)असेंब्लर
- (c)लिंकर
- (d)इंटरप्रेटर
उत्तर(c) लिंकर — वह ऑब्जेक्ट फ़ाइलों और पुस्तकालय के फलनों को जोड़कर चलने योग्य फ़ाइल बनाता है ।
- practice — not a real PYQ
निम्नलिखित में से कौन-सा अनुवादक उच्चस्तरीय भाषा के प्रोग्राम को एक-एक कथन करके अनुवादित और निष्पादित करता है ?
- (a)कंपाइलर
- (b)इंटरप्रेटर
- (c)लोडर
- (d)असेंब्लर
उत्तर(b) इंटरप्रेटर — वह प्रत्येक कथन का अनुवाद करके उसे तुरंत चलाता है ।