Среда выполнения WebAssembly против интерпретатора против движка
WebAssembly (сокращенно Wasm) - это двоичный формат инструкций для виртуальной машины на основе стека.
В контексте Wasm/WASI, что такое
- среда выполнения WebAssembly ?
- интерпретатор WebAssembly ?
- движок WebAssembly ?
и в приведенном выше контексте:
- принимающая среда?
Я полагаю, что практическое значение этих терминов может отличаться при использовании в контексте веб-браузера, но я думаю, что следует сосредоточить внимание на собственном использовании кода Wasm.
1 ответ
Должен признаться, я предпочел их предыдущее краткое изложение технологии:
WebAssembly или wasm - новый переносимый формат, эффективный по размеру и времени загрузки, подходящий для компиляции в Интернет.
Чтобы быть конкретным, WebAssembly - это набор инструкций, он очень похож на обычный язык ассемблера с низкоуровневым "ощущением". Язык поддерживает только числовые типы, без строк, массивов и т. Д.
Спецификация WebAssembly также определяет виртуальную машину, на которой он работает.
Чтобы ответить на ваши вопросы:
что такое среда выполнения WebAssembly?
Это машина или виртуальная машина, которая может выполнять набор инструкций WebAssembly, как описано в спецификации. У вас есть один в вашем браузере!
что такое интерпретатор WebAssembly?
Интерпретаторы и компиляторы - это два разных подхода к выполнению языка, как описано здесь:
Как работает интерпретатор / компилятор
что такое движок WebAssembly?
Практически то же самое, что и среда выполнения.
хост-среда?
Среды выполнения WebAssembly обычно находятся внутри хоста - это потому, что сам WebAssembly не может выполнять какие-либо операции ввода-вывода. Чтобы сделать что-то полезное, он работает с хост-средой для достижения этой цели.