जावा से सी वास्तव में सबसे आसान होगा। याद रखें कि आपको भाषा को बदलने की जरूरत है, यदि आप ऐसा करते हैं, तो आवश्यक पुस्तकालयों को आपके नए कंपाइलर द्वारा परिवर्तित किया जा सकता है। दूसरे शब्दों में स्विंग और एडब्ल्यूटी एक बड़ी समस्या नहीं होनी चाहिए ...
मैं जावा मूल इंटरफ़ेस (जेएनआई) पर एक अच्छा नज़र डालने से शुरू करूंगा। जेएनआई जावा का एक हिस्सा है जो इसे सी और सी ++ के साथ उपयोग करने की अनुमति देता है। कारण मैं यहां शुरू करने का कारण यह है कि यह स्पष्ट रूप से स्पष्ट हो जाता है कि जावा के कुछ हिस्सों को सी में कैसे कार्यान्वित किया जा सकता है। एक बार जब मुझे मूल संरचनाओं पर समझ हो गई, जैसे कि जावा ऑब्जेक्ट्स को सी संरचनाओं (संरचना) पर कैसे मैप किया जा सकता है और इसमें कितनी सुंदरता है जावा एरे सहित ऑब्जेक्ट है, मैं ओपन जेडीके स्रोत कोड पर देख सकता हूं।
वास्तविक कनवर्टर को सभी आयातित जावा पुस्तकालयों (और उनके आयातित पुस्तकालयों और इतने पर ...) को परिवर्तित करना होगा जिसका अर्थ है कि आपको सबकुछ के लिए स्रोत कोड की आवश्यकता होगी। जावा पुस्तकालय बड़े होने के बाद से यह रूपांतरण कोई छोटा काम नहीं है।
प्रक्रिया समय लेने वाली होगी, लेकिन कोई एआई की आवश्यकता नहीं होनी चाहिए। हालांकि, मुझे इस तरह के रूपांतरण करने का कोई कारण नहीं दिखता है। यह जावा की पोर्टेबिलिटी को खो देता है और सी की दक्षता प्राप्त नहीं करेगा (सिवाय इसके कि इसे देशी कोड में संकलित किया जाएगा, लेकिन जावा से सीधे कोड कोड को संकलित करना बेहतर होगा)।
यह एक अच्छा सवाल है। मैं हमेशा सोच रहा था: ऐसा क्यों है कि हम स्वचालित रूप से जटिल प्राकृतिक भाषाओं (http://translate.google.com/translate_t) का अनुवाद कर सकते हैं, लेकिन स्वचालित रूप से बहुत सरल, प्रतिबंधित प्रोग्रामिंग भाषाओं के बीच अनुवाद करने में असफल हो जाते हैं? – Frank
एक कारण, यह है कि प्रोग्रामिंग भाषाओं के बीच अनुवाद करते समय कोई गलती बर्दाश्त नहीं की जाती है, जबकि मनुष्य अधिक लचीले होते हैं और अनुवाद को समझते हैं, भले ही इसमें त्रुटियां हों। – Frank
कुछ प्रयास - [ONE] (http://tech.novosoft-us.com/product_c2j.jsp) और [TWO] (http://www.soften.ktu.lt/~stonis/c2java/index.html) जावा कनवर्टर के लिए एक सी बनाने के लिए। – Lazer