2010-08-20 112 views
6

我正在尋找一個開源的虛擬機是:開源虛擬機

  • 快速輕量級儘可能
  • 支持一組最小的字節代碼(如LLVM IR)
  • 可輕鬆地從C++應用程序嵌入
  • 跨平臺(Linux,Windows和OS X)
  • x86支持
+6

嗯,沒有人*永遠*要求一個緩慢,沉重和封閉的源代碼解決方案。你爲什麼不使用Java JVM? – 2010-08-20 13:50:48

回答

5

Lua因在C/C++中嵌入很容易而出名。它的虛擬機是開源的,跨平臺的,非常小(包括exe文件大小和字節碼指令集),同時速度非常快。但是它的字節碼可能不適合你的語言。 The bytecode format is documented here.

+1

Lua的虛擬機不是通用VM,但它可能適用於您的自定義語言,如果您的語言和Lua在語義上相距不太遠。 Lua虛擬機的簡短描述在http://www.lua.org/source/5.1/lopcodes.h.html#OP_MOVE。如果你這樣做,我建議你首先嚐試將你的語言編譯成Lua源代碼。 – lhf 2010-08-20 14:00:43

4

NekoVM是一種編程語言和輕量級虛擬機,設計爲編譯器編寫器的通用目標。 The documentation使得將VM嵌入到C或C++應用程序中似乎非常容易,但似乎VM API尚未記錄。

2

其他可能的答案:爲什麼不輸出彙編器呢?它速度快,重量輕,而且根本不需要虛擬機。既然你只針對x86,這可能是有道理的,取決於你想要做什麼。