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