Виртуальная машина с открытым исходным кодом - PullRequest
7 голосов
/ 20 августа 2010

Я ищу виртуальную машину с открытым исходным кодом, которая:

  • fast и настолько легкие, насколько это возможно
  • поддерживаетминимальный набор байт-кода (например, LLVM IR)
  • , легко внедряемый из приложения C ++
  • Кроссплатформенность (Linux, Windows и OS X)
  • Поддержка x86

Ответы [ 4 ]

6 голосов
/ 20 августа 2010

Lua славится тем, что его смехотворно легко встраивать в C / C ++.Его виртуальная машина с открытым исходным кодом и кроссплатформенная, очень маленькая (и размер exe, и набор инструкций байт-кода) и в то же время довольно быстрая.Но его байт-код может не подходить для вашего языка. Формат байт-кода задокументирован здесь.

5 голосов
/ 20 августа 2010

NekoVM - это язык программирования и облегченная виртуальная машина, разработанная как общая цель для разработчиков компиляторов. Документация позволяет очень легко встроить виртуальную машину в приложение на C или C ++, но кажется, что API-интерфейс VM еще не задокументирован.

4 голосов
/ 20 августа 2010

Зачем отфильтровывать LLVM? Это набор библиотек C

Я полагаю, что это не так просто внедрить, как Lua, но LLVM настолько хорош, что, вероятно, преодолеет трудности его интеграции. См. этот ТАК вопрос , это помогает?

2 голосов
/ 20 августа 2010

Другой возможный ответ: почему бы не выводить ассемблер вместо этого?это быстро и легко, и вам вообще не нужна виртуальная машина.Поскольку вы ориентируетесь только на x86, это может иметь смысл, в зависимости от того, что вы пытаетесь сделать.

...