Среда выполнения WebAssembly против интерпретатора против движка

С https://webassembly.org/:

WebAssembly (сокращенно Wasm) - это двоичный формат инструкций для виртуальной машины на основе стека.

В контексте Wasm/WASI, что такое

  • среда выполнения WebAssembly ?
  • интерпретатор WebAssembly ?
  • движок WebAssembly ?

и в приведенном выше контексте:

  • принимающая среда?

Я полагаю, что практическое значение этих терминов может отличаться при использовании в контексте веб-браузера, но я думаю, что следует сосредоточить внимание на собственном использовании кода Wasm.

1 ответ

Должен признаться, я предпочел их предыдущее краткое изложение технологии:

WebAssembly или wasm - новый переносимый формат, эффективный по размеру и времени загрузки, подходящий для компиляции в Интернет.

Чтобы быть конкретным, WebAssembly - это набор инструкций, он очень похож на обычный язык ассемблера с низкоуровневым "ощущением". Язык поддерживает только числовые типы, без строк, массивов и т. Д.

Спецификация WebAssembly также определяет виртуальную машину, на которой он работает.

Чтобы ответить на ваши вопросы:

что такое среда выполнения WebAssembly?

Это машина или виртуальная машина, которая может выполнять набор инструкций WebAssembly, как описано в спецификации. У вас есть один в вашем браузере!

что такое интерпретатор WebAssembly?

Интерпретаторы и компиляторы - это два разных подхода к выполнению языка, как описано здесь:

Как работает интерпретатор / компилятор

что такое движок WebAssembly?

Практически то же самое, что и среда выполнения.

хост-среда?

Среды выполнения WebAssembly обычно находятся внутри хоста - это потому, что сам WebAssembly не может выполнять какие-либо операции ввода-вывода. Чтобы сделать что-то полезное, он работает с хост-средой для достижения этой цели.

Другие вопросы по тегам