कम्पाइलरहरू
कम्पाइलरले कम्प्यूटर प्रोग्रामलाई जनाउँछ जुन एक प्रोग्रामिङ भाषामा लेखिएको कम्प्युटर कोड अनुवाद गर्न प्रयोग गरिन्छ (स्रोत भाषाको रूपमा उल्लेख गरिएको) अर्को प्रोग्रामिङ भाषामा (लक्ष्य भाषाको रूपमा उल्लेख गरिएको)। कम्पाइलर शब्द मुख्यतया ती प्रोग्रामहरूका लागि लागू हुन्छ जसले स्रोत कोडहरूलाई उच्च स्तरको प्रोग्रामिङ भाषाबाट तल्लो स्तरको प्रोग्रामिङ भाषामा अनुवाद गर्छ। उदाहरण को लागी, मेसिन कोड, वस्तु कोड वा विधानसभा भाषा कार्यान्वयन योग्य कार्यक्रम सिर्जना गर्न।
यो नोट गर्न महत्त्वपूर्ण छ कि त्यहाँ धेरै प्रकारका कम्पाइलरहरू छन्। यदि कम्पाइल गरिएको प्रोग्राम कम्प्युटरमा चल्न सक्छ जसको अपरेटिङ सिस्टम वा CPU कम्पाइलरले चलाएको भन्दा फरक छ, कम्पाइलरलाई क्रस-कम्पाइलर भनिन्छ। अर्कोतर्फ बुटस्ट्र्याप कम्पाइलर भाषामा लेखिएको छ जुन यसले कम्पाइल गर्न चाहन्छ। डिकम्पाइलर एउटा प्रोग्राम हो जुन निम्न स्तरको भाषालाई उच्च स्तरको भाषामा अनुवाद गर्न प्रयोग गरिन्छ। उच्च स्तरका भाषाहरू बीच अनुवाद गर्न प्रयोग गरिने कार्यक्रमलाई स्रोत-देखि-स्रोत कम्पाइलर भनिन्छ। यसलाई ट्रान्सपिलर पनि भन्न सकिन्छ। भाषा परिवर्तन बिना अभिव्यक्तिको रूप अनुवाद गर्न जिम्मेवार हुने कार्यक्रमलाई भाषा पुन: लेखक भनिन्छ। कम्पाइलर-कम्पाइलर शब्दले ती उपकरणहरूलाई बुझाउँछ जुन सिन्ट्याक्स विश्लेषण प्रदर्शन गर्न जिम्मेवार पार्सरहरू सिर्जना गर्न प्रयोग गरिन्छ।
कम्पाइलरद्वारा गरिएका केही अपरेसनहरू समावेश छन्: प्रीप्रोसेसिङ, पार्सिङ, (सिन्ट्याक्स निर्देशित अनुवाद) सिमान्टिक विश्लेषण, लेक्सिकल विश्लेषण, कोड जेनेरेशन, कोड अप्टिमाइजेसन र इनपुट प्रोग्रामहरूलाई मध्यवर्ती प्रतिनिधित्वमा रूपान्तरण। कम्पाइलरहरू यी कार्यहरूलाई विभिन्न चरणहरूमा लागू गर्न जिम्मेवार छन् जसले सही रूपान्तरण र स्रोत इनपुटको कुशल डिजाइनलाई लक्षित आउटपुटमा बढावा दिन्छ। कम्पाइलरको गलत व्यवहारको कारणले हुने कार्यक्रम त्रुटिहरू ट्र्याक गर्न र वरपर काम गर्न धेरै गाह्रो हुन सक्छ। कम्पाइलर कार्यान्वयनकर्ताहरूले कम्पाइलर शुद्धता सुनिश्चित गर्न महत्त्वपूर्ण प्रयासहरू लगानी गर्छन्।
यो नोट गर्न महत्त्वपूर्ण छ कि कम्पाइलरहरू मात्र अनुवादकहरू होइनन् जुन स्रोत कार्यक्रमहरू रूपान्तरण गर्न प्रयोग गरिन्छ। एक कम्प्यूटर सफ्टवेयर जुन रूपान्तरण गर्न र त्यसपछि संकेतित कार्यहरू कार्यान्वयन गर्न जिम्मेवार छ एक दोभाषेको रूपमा उल्लेख गरिएको छ। अनुवादको प्रक्रियाले कम्प्युटर भाषाहरूको डिजाइनलाई प्रभाव पार्छ जसले व्याख्या वा संकलनको प्राथमिकता दिन्छ। अभ्यासमा, कम्पाइलरहरू र कम्पाइल गरिएका भाषाहरूको लागि दोभाषेको कार्यान्वयनलाई व्याख्या गरिएका भाषाहरूको लागि लागू गर्न सकिन्छ।
ध्यान दिनुहोस् कि कम्पाइलर प्रयोग गर्दा, प्रोग्राम चलाउन दुई-चरण प्रक्रिया प्रयोग गरिन्छ,
संकलन उपकरण चेन
ठूला प्रोग्रामहरूका लागि, कम्पाइलर बहु-चरण उपकरण श्रृंखलाको अंश हो,
(प्रीप्रोसेसर) - (कम्पाइलर) - (एसेम्बलर) - (लिङ्कर) - (लोडर)।
कम्पाइलरको संरचना
आधुनिक कम्पाइलरहरू दुई प्रमुख भागहरू मिलेर बनेका छन्। यी प्रत्येक भागहरू प्रायः उपविभाजित हुन्छन्। यी दुई प्रमुख भागहरू अगाडि र पछाडिको छेउ हुन्।
फ्रन्ट एन्ड स्रोत कार्यक्रमको विश्लेषणको लागि जिम्मेवार छ, कार्यक्रमको मध्यवर्ती प्रतिनिधित्व निर्माण गर्दछ र यसको घटक भागहरू निर्धारण गर्दछ। सामान्यतया, अगाडिको छेउ लक्षित भाषाबाट स्वतन्त्र हुन्छ।
अर्कोतर्फ पछाडिको छेउ अगाडिको छेउबाट उत्पादित मध्यवर्ती प्रतिनिधित्वबाट लक्षित कार्यक्रमलाई संश्लेषण गर्न जिम्मेवार छ। सामान्यतया, ब्याक एन्डलाई स्रोत भाषाबाट स्वतन्त्र भनिन्छ।