В настоящее время я работаю на языке программирования домашних животных (для учебных целей) и прошел много исследований за последний год, и я думаю, что его время, наконец, началось моделируя понятия такого языка. Прежде всего, я хочу, чтобы он компилировался в какую-то промежуточную форму, такую как JVM или .NET bytecode, цель которой была совместима с мультиплатформой/архитектурой. Во-вторых, я хочу, чтобы он был быстрым (у меня также есть много других вещей, но это не цель этой темы, чтобы обсудить их).Использование LLVM в качестве виртуальной машины - многоплатформенная и многоархитектурная кодировка
Лучшие варианты, которые пришли на мой взгляд, были: Compile для виртуальной машины Java байткод и использовать OpenJDK в качестве среды выполнения, компилировать .NET байткод и использовать Mono в качестве среды выполнения, компилировать в LLVM IR и использовать LLVM в качестве среды выполнения ,
Как вы могли себе представить, я выбрал LLVM. Зачем? потому что он быстро вспыхивает. Я сделал небольшой тест, используя код C++ N-Body, и достиг 7-го уровня в своей машине с lli jitted IR, в отличие от 27-х с встроенным компилятором clang (я знаю, что clang сначала делает IR, затем машинный код).
Итак, вот мой вопрос: есть ли какая-либо распространяемая версия базового набора инструментов LLVM (мне просто нужно lli), который я могу использовать? Или я должен скомпилировать свою собственную? Если последнее, можете ли вы дать мне какие-либо подсказки о том, как это сделать? Если я действительно должен это сделать, я думаю, что это кросс-компиляция их с моей машины (Intel Mac) и создание некоторых инсталляторов (например, .msi для windows, .rpm и .deb для популярных дистрибутивов linux и .pkg для Macs). Помните, мне нужно только минимальное подмножество LLVM, так что это подмножество способно действовать как виртуальная машина, используя «lli». Реальный вопрос здесь заключается в том, как использовать LLVM как типичную виртуальную машину.
Проект LLVM имеет разрешительную лицензию; это звучит так, как вам просто нужно распространять ** Core Libraries **. –
@RobertHarvey То, что я думал, купите, я понятия не имею, с чего начать. – Salvia
Само собой разумеется, что вам все равно нужно будет прочитать документацию, а так как вы уже приняли решение ... Я очень рад работать с LLVM; увы, я еще не прочитал документацию. –