कंपाइलर आणि असेंबलर दरम्यान फरक
सामग्री
प्रोग्रामच्या अंमलबजावणीमध्ये कंपाइलर आणि असेंबलर महत्वाची भूमिका निभावतात. काही कंपाइलर असेंब्ली कोडऐवजी एक्जीक्युटेबल कोड व्युत्पन्न करतात. कंपाईलर प्रीप्रोसेस्ड स्रोत कोड घेते आणि त्याचे संयोजन कोडमध्ये करते. असेंबलर कंपाईलरमधून असेंब्ली कोड घेते आणि त्यास पुनर्स्थित करण्यायोग्य मशीन कोडमध्ये भाषांतरित करते. या लेखात, मी खाली दर्शविलेले तुलना चार्टच्या मदतीने कंपाईलर आणि असेंबलरमधील फरकांवर चर्चा केली आहे, फक्त एक नजर टाका.
- तुलना चार्ट
- व्याख्या
- मुख्य फरक
- निष्कर्ष
तुलना चार्ट
तुलनासाठी आधार | संकलक | असेंबलर |
---|---|---|
मूलभूत | असेंब्ली भाषा कोड किंवा थेट कार्यवाहीयोग्य कोड व्युत्पन्न करते. | पुनर्स्थित करण्यायोग्य मशीन कोड व्युत्पन्न करते. |
इनपुट | पूर्वप्रक्रिया स्त्रोत कोड. | असेंब्ली भाषा कोड. |
चरण / उत्तीर्ण | संकलन चरण म्हणजे लेक्सिकल analyनालाइझर, वाक्यरचना विश्लेषक, अर्थशास्त्र विश्लेषक, इंटरमीडिएट कोड जनरेशन, कोड ऑप्टिमायझेशन, कोड जनरेशन. | असेंबलर दिलेल्या इनपुटवर दोन पास करते. |
आउटपुट | कंपाईलरद्वारे व्युत्पन्न असेंब्ली कोड मशीन कोडची एक मेमोनिक आवृत्ती आहे. | एका असेंबलरद्वारे व्युत्पन्न केलेला पुनर्स्थित करण्यायोग्य मशीन कोड बायनरी कोडद्वारे दर्शविला जातो. |
कंपाईलर व्याख्या
द संकलक एक संगणक प्रोग्राम आहे जो स्त्रोताच्या भाषेत लिहिलेला प्रोग्राम वाचतो, त्यास समतुल्य भाषांतर करतो असेंब्ली भाषा आणि असेंब्ली भाषा कोड अग्रेषित करते असेंबलर. सूत्र कोड असेंब्ली कोडमध्ये भाषांतर करताना कंपाइलर देखील अहवाल देतो त्रुटी त्याच्या वापरकर्त्यास स्त्रोत कोडमध्ये.
कंपाईलर देखील वर्गीकृत आहेत सिंगल-पास, मल्टी-पास, लोड-अँड-गो, डीबगिंग आणि ऑप्टिमायझेशन. कंपाईलर कोणते कार्य करते आणि ते कसे तयार केले गेले याच्या आधारे वर्गीकरण केले जाते. या गुंतागुंत असूनही, संकलित करण्याचे मूळ कार्य समान आहे.
संकलन दोन भागात केले जाते, विश्लेषण भाग आणि संश्लेषण भाग. द विश्लेषण भाग स्त्रोत कोडला घटकांचे तुकडे करते आणि स्त्रोत कोडचे दरम्यानचे प्रतिनिधित्व करते. द संश्लेषण भाग दरम्यानचे प्रतिनिधित्व पासून लक्ष्य कोड तयार.
संकलन खालील टप्प्यात केले जाते:
लेक्सिकल विश्लेषक, वाक्यरचना विश्लेषक, अर्थशास्त्र विश्लेषक, इंटरमीडिएट कोड जनरेटर, कोड ऑप्टिमाइझर, कोड जनरेटर, प्रतीक सारणी आणि त्रुटी हँडलर.
- द शब्दावली विश्लेषक स्त्रोत कोडची अक्षरे वाचते आणि त्यामध्ये गटबद्ध करते टोकनचे प्रवाह. प्रत्येक टोकन अशा प्रकारच्या वर्णांचा तार्किक क्रम दर्शवितो कीवर्ड, अभिज्ञापक, ऑपरेटर. टोकन बनणार्या चारित्र्याचे अनुक्रम म्हणतात लेक्सेम.
- द वाक्यरचना विश्लेषक कोशिक विश्लेषक आणि गट टोकनकडून प्राप्त केलेले टोकन a मध्ये विश्लेषित करते श्रेणीबद्ध रचना.
- द अर्थशास्त्र विश्लेषक कोणत्याहीसाठी स्त्रोत कोड तपासते शब्दशः त्रुटी.
- दरम्यानचे कोड जनरेटर व्युत्पन्न दरम्यानचे प्रतिनिधित्व स्त्रोत कोडचा
- द कोड ऑप्टिमायझर दरम्यानचे कोड वेगवान चालणार्या मशीन कोडमध्ये अनुकूलित करते.
- द कोड जनरेटर शेवटी लक्ष्य कोड व्युत्पन्न करतो जो एक आहे पुनर्स्थित करण्यायोग्य मशीन कोड किंवा असेंब्ली कोड.
- द प्रतीक सारणी एक डेटा स्ट्रक्चर आहे ज्यात सोर्स कोडमधील प्रत्येक अभिज्ञापकाचे रेकॉर्ड असते.
- त्रुटी हाताळणारा प्रत्येक टप्प्यात त्रुटी ओळखते आणि त्या त्रुटी हाताळतात.
असेंबलर ची व्याख्या
काही कंपाईलर असेंब्लीरचे कार्य करतात आणि असेंब्ली कोडऐवजी एक पुनर्स्थित करण्यायोग्य मशीन कोड व्युत्पन्न करतात, जो थेट लिंकर / लोडरकडे जातो. द असेंबलर कंपाईलरद्वारे व्युत्पन्न असेंब्ली कोड इनपुट म्हणून घेते आणि त्यामध्ये भाषांतरित करते पुनर्स्थित करण्यायोग्य मशीन कोड.
मशीन कोड कोड असेंब्ली कोडपेक्षा कसा वेगळा आहे ते पाहू. असेंब्ली कोड आहे मेमोनिक मशीन कोडची आवृत्ती. याचा अर्थ असा की विधानसभा कोड ऑपरेशन्सचे प्रतिनिधित्व करण्यासाठी नावे वापरतो आणि मेमरी पत्त्यांना नावे देखील देतो. दुसरीकडे, द मशीन कोड वापरते बायनरी कोड ऑपरेशन्स आणि मेमरी पत्त्यांचे प्रतिनिधित्व करण्यासाठी.असेंब्लीरचा अगदी सोपा फॉर्म देखील सादर करतो दोन पास इनपुट वर. द पहिला पास सर्व शोधतो अभिज्ञापक असेंब्ली कोडमध्ये जे स्टोरेज स्थान सूचित करते आणि त्यामध्ये संचयित करतात प्रतीक सारणी (संकलक चिन्ह सारणी व्यतिरिक्त). द संचयन स्थान नियुक्त केले आहे पहिल्या पासमध्ये आलेल्या अभिज्ञापकास.
मध्ये दुसरा पास, इनपुट पुन्हा स्कॅन केले आहे आणि यावेळी ऑपरेशन कोड आहेत भाषांतरित मध्ये एक बिट्सचा क्रम मशीन कोडमध्ये त्या ऑपरेशनचे प्रतिनिधित्व करते. दुसरी पास देखील भाषांतरित करते अभिज्ञापक मध्ये पत्ते प्रतीक सारणी मध्ये परिभाषित. त्यामुळे दुसरा पास व्युत्पन्न पुनर्स्थित करण्यायोग्य मशीन कोड.
- कंपाईलर आणि असेंबलरमधील महत्त्वाचा फरक म्हणजे तो कंपाईलर असेंब्ली कोड व्युत्पन्न करते आणि काही कंपाइलर थेट एक्झिक्युटेबल कोड देखील व्युत्पन्न करतात, तर असेंबलर पुनर्स्थित करण्यायोग्य मशीन कोड व्युत्पन्न करते.
- कंपाईलर इनपुट म्हणून घेते प्रीप्रोसेस्ड कोड प्रीप्रोसेसरद्वारे व्युत्पन्न. दुसरीकडे, एकत्रित घेते असेंब्ली कोड इनपुट म्हणून
- संकलन दोन टप्प्यात होते विश्लेषण चरण आणि संश्लेषण टप्पा. विश्लेषण टप्प्यात, इनपुट जातो शब्दावली विश्लेषक, वाक्यरचना विश्लेषक, अर्थशास्त्र विश्लेषक तथापि, संश्लेषण विश्लेषण मार्गे होते दरम्यानचे कोड जनरेटर, कोड ऑप्टिमाइझर, कोड जनरेटर. दुसरीकडे, असेंबलर इनपुटमधून जातो दोन टप्पे. पहिल्या टप्प्यात अभिज्ञापकांची ओळख पटते आणि दुसर्या टप्प्यात त्यांना पत्ता वाटप करतात विधानसभेचा कोड बायनरी कोडमध्ये अनुवादित केला जातो.
- कंपाईलरद्वारे व्युत्पन्न असेंब्ली कोड आहे मेमोनिक आवृत्ती मशीन कोडची. तथापि, असेंब्लीरद्वारे निर्मित पुनर्वासनयोग्य मशीन कोड ए बायनरी पुनर्स्थित करण्यायोग्य कोड.
निष्कर्ष:
काही कंपाइलर थेट एक्झिक्युटेबल कोड व्युत्पन्न करतात म्हणून अॅसेम्बलरची आवश्यकता नसते. जर असेंबलर वापरला गेला असेल तर त्यास सर्व बिल्ट-इन लायब्ररी सोर्स कोडमध्ये वापरलेल्या लायब्ररी फंक्शन्समध्ये जोडण्यासाठी लिंकरची आवश्यकता असते.