Нет , в настоящее время нет интерпретатора Rust, который можно было бы просто использовать в качестве замены для компиляции с rustc
.
Существует miri
, который является интерпретатором для MIR, Rust «промежуточного представления среднего уровня» (в основном определяющего управляющий граф потока). Компилятор Rust генерирует код MIR как часть своего обычного конвейера. Этот код MIR обычно переводится в LLVM-IR, который затем переводится в машинный код LLVM. Мири позволяет интерпретировать этот код MIR напрямую.
Однако , Miri на самом деле не предназначена для программистов, чтобы интерпретировать свой проект вместо его компиляции. По крайней мере, пока. Вместо этого он построен главным образом для проверки небезопасного кода на неопределенное поведение: инструмент динамического анализа кода / дезинфицирующее средство. Кроме того, Мири все еще заметно ограничена. В частности, в прошлый раз, когда я проверял, extern "C"
вызовы не поддерживались.
Я бы также сказал, что Rust не так хорошо подходит для полной интерпретации, как другие языки. Компилятор Rust выполняет значительный объем тщательного анализа исходного кода, который необходимо выполнить в тот или иной момент, так или иначе.