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