В настоящее время я смотрю на разные виртуальные машины для запуска множества скриптовых языков (встроенным образом).
Две виртуальные машины, которые попались на глаза:
LLVM: Хотя я видел посты, в которых предлагалось не использовать LLVM в качестве виртуальной машины, похоже, что он многое делает для этого. Он может выполнять оптимизацию, JIT, уже имеет хороший отладчик и т. Д. Хотя, похоже, не так много документации по использованию LLVM таким образом, есть Cling, который способен запускать c ++ 11 в качестве интерпретируемого языка ( что довольно впечатляюще), а также инструмент командной строки ‘lli’.
libJIT: Технически это не виртуальной машины, но предоставляет необходимые инструменты для ее создания.
Итак, мои вопросы:
Что касается фактического использования ВМ, я собираюсь встроить ВМ в программу на С ++, чтобы обеспечить среду пользователя с возможностью создания сценариев. Я уже использую Lua для некоторых вещей, но по разным причинам я хочу иметь возможность поддерживать и другие языки.
Наконец, я посмотрел на Parrot, но я немного колеблюсь, чтобы использовать его из некоторых вещей, которые я читал об этом (может быть, кто-то может убедить меня в обратном?).
Обновить
Я наткнулся http://vmkit.llvm.org, похоже, он использует LLVM для создания полноценной виртуальной машины.
Задача ещё не решена.
Других решений пока нет …