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

Anonim

संकलक में चरण बनाम पास

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

कंपाइलर में एक पास क्या है?

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

-2 ->

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

संकलक में एक चरण क्या है?

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

कंपाइलर में चरण और पास के बीच क्या अंतर है?

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