2010-04-04 13 views
9

जैसा कि शीर्षक इंगित करता है, क्या कोई सी/सी ++ बाइटकोड कंपाइलर्स/दुभाषिया हैं? मैं एक व्याख्या की गई भाषा में एक एप्लीकेशन लिख रहा हूं जो कुछ पुस्तकालयों पर निर्भर करता है जो पूरी तरह से पार-संगत हैं (किसी विशेष प्लेटफॉर्म के लिए संकलन के दौरान कोड परिवर्तनों को इंगित करने के लिए कोई विशेष झंडे नहीं हैं) लेकिन सी और सी ++ में लिखे गए हैं। प्रत्येक मंच के साथ एन-प्लेटफार्म-विशिष्ट-libs शिपिंग करने के बजाय, एक प्लेटफार्म विशिष्ट दुभाषिया द्वारा व्याख्या किए गए libs के एक सेट को शिप करना अच्छा होगा।गैर-देशी बाइटकोड संकलक/दुभाषियों के लिए कोई सी/सी ++?

संभव और/या उपलब्ध?

EDIT1: प्रश्न में व्याख्या की गई भाषा पायथन है, हालांकि मैं रूबी का भी उपयोग कर सकता हूं।

+2

भाषा का क्या अर्थ है? अधिक से अधिक लोकप्रिय लोगों में सी (और शायद सी ++) एक्सटेंशन जोड़ने के पोर्टेबल तरीके हैं। इस काम के लिए –

+1

'llvm-gcc' और' clang' एलएलवीएम के भीतर मौजूद है, मुझे लगता है। –

+0

भाषा पायथन है, हालांकि मैं रूबी का भी उपयोग कर सकता हूं। मैं दोनों या एक या दूसरे का उपयोग कर सकता हूं, मेरे पास एक आरेख है इसलिए मैंने अभी तक शुरू नहीं किया है। – Matt

उत्तर

3

आप किस भाषा का उपयोग कर रहे हैं? यदि इसमें .NET आधारित कार्यान्वयन (उदा। आयरनपीथन) है, तो आप संभवतः सीई ++/सीएलआई कंपाइलर के साथ .NET CLR और मोनो के लिए बाइट कोड बनाने के लिए इसका उपयोग कर सकते हैं।

यदि आपके सी ++ पुस्तकालयों पर पूर्ण नियंत्रण है तो यह केवल संभव है।

+0

मैंने ईमानदारी से ऐसा करने के बारे में सोचा नहीं था। – Matt

+0

मोनो का उपयोग करना इसे पूरा करने का सबसे स्थिर तरीका नहीं हो सकता है। खासकर पायथन के लिए, जिसमें पहले से ही सी एक्सटेंशन वितरित करने के पोर्टेबल तरीके हैं। –

+0

मानक दृष्टिकोण का उपयोग करके, पायथन कोड पोर्टेबल है, लेकिन सी/सी ++ पुस्तकालयों को प्रत्येक प्लेटफ़ॉर्म के लिए पुन: संकलित किया जाना चाहिए। मानक दृष्टिकोण के पास सीएलआर/मोनो दृष्टिकोण, लेकिन यह "libs के एक सेट जहाज" को पूरा नहीं करता है जिसे सी/सी ++ पुस्तकालयों के लिए एक मंच विशिष्ट दुभाषिया "आवश्यकता द्वारा व्याख्या किया जाता है। – richj

1

आप नेट वी एम/CLR का उपयोग कर के बारे में सुनिश्चित नहीं हैं, तो आप जावा वी एम LLJVM साथ एक कोशिश (LLVM-जीसीसी) के माध्यम से या तो Jython या JRuby दे सकता है और।

संबंधित मुद्दे