कंपाइलर और असेंबलर के बीच अंतर

लेखक: Laura McKinney
निर्माण की तारीख: 1 अप्रैल 2021
डेट अपडेट करें: 12 मई 2024
Anonim
| असेंबलर , इंटरप्रेटर और कम्पाइलर  क्या होते है | असेंबलर | इंटरप्रेटर | कम्पाइलर | [ हिंदी में]
वीडियो: | असेंबलर , इंटरप्रेटर और कम्पाइलर क्या होते है | असेंबलर | इंटरप्रेटर | कम्पाइलर | [ हिंदी में]

विषय


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

  1. तुलना चार्ट
  2. परिभाषा
  3. मुख्य अंतर
  4. निष्कर्ष

तुलना चार्ट

तुलना के लिए आधारसंकलक कोडांतरक
बुनियादीअसेंबली भाषा कोड या सीधे निष्पादन योग्य कोड बनाता है।Relocatable मशीन कोड उत्पन्न करता है।
इनपुटप्रीप्रोसेस स्रोत कोड।विधानसभा भाषा कोड।
चरण / पाससंकलन चरण में लेक्सिकल एनालाइज़र, सिंटैक्स एनालाइज़र, सिमेंटिक एनालाइज़र, इंटरमीडिएट कोड जनरेशन, कोड ऑप्टिमाइज़ेशन, कोड जनरेशन हैं।असेंबलर दिए गए इनपुट पर दो पास बनाता है।
उत्पादनकंपाइलर द्वारा उत्पन्न असेंबली कोड मशीन कोड का एक छोटा संस्करण है।एक कोडांतरक द्वारा उत्पन्न रिलेकेबल मशीन कोड को बाइनरी कोड द्वारा दर्शाया जाता है।


कंपाइलर की परिभाषा

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

कंपाइलर को भी वर्गीकृत किया गया है सिंगल-पास, मल्टी-पास, लोड-एंड-गो, डिबगिंग और ऑप्टिमाइज़ेशन। एक कंपाइलर क्या कार्य करता है और इसका निर्माण कैसे किया गया है, इसके आधार पर वर्गीकरण किया जाता है। इन जटिलताओं के बावजूद, संकलक का मूल कार्य समान रहता है।

संकलन दो भागों में किया जाता है, विश्लेषण भाग तथा संश्लेषण का हिस्साविश्लेषण भाग स्रोत कोड को घटक टुकड़ों में तोड़ता है और स्रोत कोड का मध्यवर्ती प्रतिनिधित्व करता है। संश्लेषण का हिस्सा मध्यवर्ती प्रतिनिधित्व से लक्ष्य कोड बनाता है।

संकलन निम्नलिखित चरणों में किया जाता है:


लेक्सिकल एनालाइज़र, सिंटैक्स एनालाइज़र, सिमेंटिक एनालाइज़र, इंटरमीडिएट कोड जनरेटर, कोड ऑप्टिमाइज़र, कोड जनरेटर, सिंबल टेबल और एरर हैंडलर।

  • लेक्सिकल विश्लेषक स्रोत कोड के वर्णों को पढ़ता है और उन्हें समूह में रखता है टोकन की धाराएँ। प्रत्येक टोकन वर्णों के तार्किक अनुक्रम का प्रतिनिधित्व करता है कीवर्ड, पहचानकर्ता, ऑपरेटर। चरित्र का अनुक्रम जो एक टोकन बनाता है उसे कहा जाता है शब्दिम.
  • वाक्यविन्यास विश्लेषक लेक्सिकल एनालाइज़र और ग्रुप टोकन से प्राप्त टोकन को एक में बदल देता है वर्गीकृत संरचना.
  • शब्दार्थ विश्लेषक किसी के लिए स्रोत कोड की जाँच करता है शब्दार्थ त्रुटि.
  • इंटरमीडिएट कोड जनरेटर उत्पन्न करता है मध्यवर्ती प्रतिनिधित्व स्रोत कोड के
  • कोड ऑप्टिमाइज़र मध्यवर्ती कोड को तेजी से चलने वाले मशीन कोड में अनुकूलित करता है।
  • कोड जनरेटर अंत में लक्ष्य कोड उत्पन्न करता है जो एक है relocatable मशीन कोड या एक विधानसभा कोड.
  • प्रतीक तालिका एक डेटा संरचना है जिसमें स्रोत कोड में प्रत्येक पहचानकर्ता के लिए रिकॉर्ड होता है।
  • त्रुटि करने वाला प्रत्येक चरण में त्रुटि का पता लगाता है और उन त्रुटियों को संभालता है।

असेम्बलर की परिभाषा

कुछ संकलक असेंबलर का कार्य करते हैं और सीधे असेंबली कोड के बजाय एक रीकोसेबल मशीन कोड उत्पन्न करते हैं, जो सीधे लिंकर / लोडर को दिया जाता है। कोडांतरक संकलक द्वारा उत्पन्न असेंबली कोड को इनपुट के रूप में लेता है और इसमें अनुवाद करता है relocatable मशीन कोड.

आइए देखें कि मशीन कोड असेंबली कोड से कैसे अलग है। विधानसभा कोड है स्मृति सहायक मशीन कोड का संस्करण। इसका अर्थ है कि यह असेंबली कोड संचालन का प्रतिनिधित्व करने के लिए नामों का उपयोग करता है और यह स्मृति पतों को भी नाम देता है। दूसरी ओर, ए मशीन कोड का उपयोग करता है बाइनरी कोड संचालन और स्मृति पतों के प्रतिनिधित्व के लिए।

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

में दूसरा पास, इनपुट फिर से स्कैन किया गया है, और इस बार ऑपरेशन कोड कर रहे हैं अनुवाद में बिट्स का क्रम मशीन कोड में उस ऑपरेशन का प्रतिनिधित्व करना। दूसरा पास भी अनुवाद करता है पहचानकर्ता में पतों प्रतीक तालिका में परिभाषित किया गया है। इस प्रकार दूसरा पास उत्पन्न करता है relocatable मशीन कोड.

  1. संकलक और कोडांतरक के बीच महत्वपूर्ण अंतर यह है कि संकलक असेंबली कोड उत्पन्न करता है और कुछ कंपाइलर सीधे निष्पादन योग्य कोड उत्पन्न कर सकते हैं, जबकि, कोडांतरक relocatable मशीन कोड उत्पन्न करता है।
  2. संकलक इनपुट के रूप में लेता है पहले से बना हुआ कोड प्रीप्रोसेसर द्वारा उत्पन्न। दूसरी ओर, कोडांतरक लेता है विधानसभा कोड इनपुट के रूप में।
  3. संकलन दो चरणों में होता है विश्लेषण चरण तथा संश्लेषण चरण। विश्लेषण चरण में, इनपुट से गुजरता है लेक्सिकल एनालाइज़र, सिंटैक्स एनालाइज़र, सिमेंटिक एनालाइज़र जबकि, संश्लेषण विश्लेषण के माध्यम से होता है मध्यवर्ती कोड जनरेटर, कोड अनुकूलक, कोड जनरेटर। दूसरी ओर, कोडांतरक इनपुट से गुजरता है दो चरण। पहले चरण में पहचानकर्ताओं का पता लगाया जाता है और दूसरे चरण में विधानसभा को बाइनरी कोड के लिए अनुवादित किया जाता है।
  4. संकलक द्वारा उत्पन्न असेंबली कोड एक है महामारी का संस्करण मशीन कोड की। हालांकि, असेंबलर द्वारा उत्पन्न रिलोकेबल मशीन कोड एक है द्विआधारी relocatable कोड.

निष्कर्ष:

कोडांतरक की आवश्यकता नहीं हो सकती है क्योंकि कुछ संकलक सीधे निष्पादन योग्य कोड उत्पन्न करते हैं। यदि कोडांतरक का उपयोग किया जाता है, तो इसे स्रोत कोड में उपयोग किए जाने वाले सभी लाइब्रेरी को लाइब्रेरी फ़ंक्शंस से लिंक करने के लिए लिंकर की आवश्यकता होती है।