कितनी अच्छी तरह से एलएलवीएम (मुझे लगता है कि एलएलजेवीएम) का उपयोग करके जावा बाइटकोड में सी ++ एप्लिकेशन को पोर्ट करना कितना व्यवहार्य है?
बात यह है कि वर्तमान में हमारे पास C ++ में लिखी एक प्रक्रिया है, लेकिन एक नए क्लाइंट ने प्रोग्राम को एक मल्टीप्लेयर तरीके से चलाने में सक्षम बनाया है, जावा वर्चुअल मशीन का उपयोग करते हुए स्पष्ट रूप से कोई मूल कोड (कोई जेएनआई) नहीं है। विचार उत्पन्न जार को लेने और फिर अलग-अलग सिस्टम (लिनक्स, विन, 32 बिट्स - 64 बिट्स) में कॉपी करने में सक्षम होने के लिए है और यह सिर्फ काम करना चाहिए।
चारों ओर देखने से ऐसा लगता है कि C ++ से LLVM IR कोड और फिर उस कोड को java bytecode पर संकलन करना संभव है। पठनीय होने के लिए उत्पन्न कोड की कोई आवश्यकता नहीं है।
मैंने emscripten का उपयोग करके समान चीजों के साथ थोड़ा परीक्षण किया है, यह C ++ कोड लेता है और इसे जावास्क्रिप्ट में संकलित करता है। परिणाम मान्य जेएस लेकिन पूरी तरह से अपठनीय है (हमलावर की तरह दिखता है)।
- क्या किसी ने इस tecnique का उपयोग करके C ++ से Java bytecode तक के एप्लिकेशन का पोर्ट किया है?
- हम किन समस्याओं का सामना कर सकते हैं?
- उत्पादन कोड के लिए एक वैध दृष्टिकोण है?
कुछ टिप्पणियों के बाद अपनी बात को और अधिक स्पष्ट करने के लिए, शायद पोर्ट का अच्छी तरह से उपयोग नहीं किया गया है, मुझे परिणामस्वरूप पठनीय स्रोत कोड की उम्मीद नहीं है, बस जावा बाइटकोड, इसलिए यह एक 'पोर्ट' नहीं है जिसे अब और विकसित किया जाएगा, बस लक्ष्य प्लैटफॉर्म में जेएवी जेएमएम होना चाहिए न कि देशी अस्सम्बल।
नोट: मुझे पता है कि वर्तमान में हमारे पास कुछ गैर मानक C ++ और करीबी स्रोत पुस्तकालय हैं, हम इस गैर मानक कोड और सभी करीबी स्रोत पुस्तकालयों को हटा रहे हैं और Free Libre Open Source Software का उपयोग कर रहे हैं, इसलिए मान लें कि सभी कोड मानक C ++ कोड के साथ हैं। सभी कोड संकलन समय पर उपलब्ध हैं।
नोट 2: यह पोर्टेबल सी ++ कोड लिखने का विकल्प नहीं है और फिर इसे वांछित लक्ष्य प्लेटफ़ॉर्म पर संकलित करें, संकलित कार्यक्रम को मल्टीप्लेयर होना चाहिए, इस प्रकार जेवीएम का उपयोग।
नोट 3: अभी हम पायथन या अन्य भाषा के आधार पर लागू समान समाधानों में नहीं दिख रहे हैं, लेकिन मैं इसके बारे में भी सुनना चाहूंगा। इसके साथ मेरा मतलब है कि हमारा लक्ष्य निष्पादन योग्य जावा बाइटकोड होना चाहिए लेकिन अगर सी ++ को वैध अजगर संकलित कोड को संकलित करने के विकल्प हैं तो मैं उनके बारे में भी सुनना चाहूंगा।