2010-08-20 14 views
6

मैं एक खुला स्रोत आभासी मशीन है कि के लिए देख रहा हूँ:खुला स्रोत आभासी मशीन

  • तेजी और के रूप में संभव
  • के रूप में हल्के (LLVM आईआर) की तरह बाईटकोड का एक न्यूनतम सेट
  • का समर्थन करता है
  • एक सी ++ आवेदन से आसानी से embedable
  • क्रॉस मंच (लिनक्स, विंडोज और ओएस एक्स)
  • 86 समर्थन
+6

हम्म, कोई भी * कभी * धीमी, भारी और बंद स्रोत समाधान के लिए नहीं पूछता है। आप जावा जेवीएम का उपयोग क्यों नहीं करते? –

उत्तर

3

एलएलवीएम क्यों फ़िल्टर करें? यह a set of C libraries

मुझे लगता है कि लुआ से एम्बेड करना उतना आसान नहीं है, लेकिन एलएलवीएम इतना अच्छा है कि यह शायद इसे एकीकृत करने की परेशानी को दूर करेगा। this SO question देखें, क्या इससे मदद मिलती है?

5

Lua सी/सी ++ में एम्बेड करने के लिए हास्यास्पद रूप से आसान होने के लिए प्रसिद्ध है। इसका वीएम ओपन सोर्स और क्रॉस-प्लेटफॉर्म है, बहुत छोटा (एक्सई आकार और बाइटकोड निर्देश सेट दोनों) और साथ ही साथ तेज़। लेकिन इसका बाइटकोड आपकी भाषा के लिए उपयुक्त नहीं हो सकता है। The bytecode format is documented here.

+1

लुआ का वीएम सामान्य उद्देश्य वीएम नहीं है लेकिन यह आपकी कस्टम भाषा के लिए काम कर सकता है यदि आपकी भाषा और लुआ अर्थपूर्ण रूप से बहुत दूर नहीं हैं। लुआ के वीएम का संक्षिप्त विवरण http://www.lua.org/source/5.1/lopcodes.h.html#OP_MOVE पर है। यदि आप इस तरह से जाते हैं, तो मेरा सुझाव है कि आप पहली बार अपनी भाषा को लुआ स्रोत कोड में संकलित करने का प्रयास करें। – lhf

4

NekoVM एक प्रोग्रामिंग भाषा और हल्के वर्चुअल मशीन को संकलक लेखकों के लिए सामान्य लक्ष्य के रूप में डिज़ाइन किया गया है। The documentation सी या सी ++ एप्लिकेशन में वीएम को एम्बेड करना वास्तव में आसान लगता है, लेकिन ऐसा लगता है कि वीएम एपीआई अभी तक दस्तावेज नहीं है।

2

अन्य संभावित उत्तर: इसके बजाय आउटपुट असेंबलर क्यों नहीं? यह तेज़ और हल्का है, और आपको बिल्कुल वीएम की आवश्यकता नहीं है। चूंकि आप केवल x86 को लक्षित करते हैं, इसलिए आप जो भी करने की कोशिश कर रहे हैं उसके आधार पर यह समझ में आ सकता है।

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