प्रोग्रामिंग भाषाओं के बीच कोड का अनुवाद करने के लिए 6 उपकरण

 

मौजूदा प्रोग्रामिंग कोड को वर्तमान या कुशल भाषा में माइग्रेट करने के लिए विशेषज्ञता की आवश्यकता होती है।

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

बाधा

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

उदाहरण के लिए, जॉर्ज एट अल। व्यक्त करें कि, हर 3-5 साल में, एएनएसआई सी ++ अपडेट किया जाता है। परिवर्तित शब्दों में नए कीवर्ड शामिल किए जा सकते हैं। उदाहरण के लिए, constexpr ANSI C++0x में एक नया कीवर्ड है । नतीजतन, शुरुआती अनुप्रयोगों में समान नाम वाले किसी भी पहचानकर्ता को अद्यतन किया जाना चाहिए, या उनकी गलत व्याख्या की जाएगी।

मौजूदा ट्रांसकंपाइलर

आइए प्रोग्रामिंग भाषाओं के बीच कोड का अनुवाद करने के लिए उपलब्ध कुछ टूल पर एक नज़र डालें।

JLCA – जावा भाषा रूपांतरण सहायक एक उपकरण है जो स्वचालित रूप से वर्तमान जावा कोड को विज़ुअल C# कोड में अनुवादित करता है ।

बीसीएक्स – बीसीएक्स एक छोटा कमांड-लाइन टूल है जो बीसीएक्स बेसिक सोर्स कोड फाइल लेता है और इसे ‘सी’ सोर्स कोड फाइल में परिवर्तित करता है जिसे किसी भी सी या सी ++ कंपाइलर के साथ संकलित किया जा सकता है।

PERTHON – Perthon Python सोर्स कोड को Perl 5.x सोर्स कोड में ट्रांसलेट करता है जिसे मनुष्य पढ़ सकते हैं। यह डेमियन कॉनवे के पार्स :: आरईसी डिसेंट का उपयोग करके पार्स करता है और पायथन रेफरेंस मैनुअल और बीएनएफ व्याकरण के अनुसार पायथन भाषा को फिर से लागू करना चाहता है ।

Google का GWT   – GWT के साथ, आप अपने पसंदीदा जावा विकास टूल का उपयोग करके जावा में AJAX ऐप्स बना और डीबग कर सकते हैं । जब आप इसे उत्पादन में धकेलते हैं तो GWT कंपाइलर आपके जावा एप्लिकेशन को ब्राउज़र-संगत जावास्क्रिप्ट और HTML में बदल देता है।

फेसबुक का हिपहॉप – हिपहॉप आपके PHP स्रोत कोड को प्रोग्रामेटिक रूप से अत्यधिक कुशल C++ में परिवर्तित करने के बाद g++ का उपयोग करके संकलित करता है ।

फेसबुक का ट्रांसकोडर एआई – ट्रांसकोडर, एक फेसबुक सिस्टम जो सी ++, जावा और पायथन के बीच अनुवाद कर सकता है, समस्या के लिए एक अनुपयोगी शिक्षण दृष्टिकोण लेता है। ट्रांसकोडर क्रॉस-लिंगुअल लैंग्वेज मॉडल प्रीट्रेनिंग से शुरू होता है , जो प्रोग्रामिंग भाषा की परवाह किए बिना समान निर्देशों को व्यक्त करने वाले कोड अंशों को समान प्रतिनिधित्व में परिवर्तित करता है।

भविष्य प्रगति

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

Leave a Comment