Я слышал, что W3 работает над байтовым кодом в сети,
Будет веб-сборка (wasm) имеют свой собственный синтаксис, такой как nasm и masm?
например, набирать такие вещи, как,
global _main
extern _MessageBoxA@16
extern _ExitProcess@4
section code use32 class=code
_main:
push dword 0 ; UINT uType = MB_OK
push dword title ; LPCSTR lpCaption
push dword banner ; LPCSTR lpText
push dword 0 ; HWND hWnd = NULL
call _MessageBoxA@16
push dword 0 ; UINT uExitCode
call _ExitProcess@4
section data use32 class=data
banner: db 'Hello, world!', 0
title: db 'Hello', 0
в назме для окон
или он будет создан только из компиляции из C / C ++ и других языков?
Текущий рабочий прототип для WebAssembly уже имеет синтаксис который также испускается бэкэнд LLVM ( CHECK:
части этих испытаний), используемые бэкэнд WAVM. Также см ilwasm а также WABT.
Это официальный, окончательный текстовый синтаксис? Нет, но это может стать официальным позже (Обновление за март 2017 года: это может скоро случится).
Текущий двоичный формат WebAssembly является стек машина что является значительным изменением по сравнению с оригинальным подходом AST, который использовался WebAssembly. s-выражения по своей природе не лучше подходят для представления стековых машин, но они достаточно хороши, просты и избегают бесконечных циклов.
Оригинальный ответ:
Он имеет важное свойство для WebAssembly быть представленным в виде s-выражений, которые по своей природе имеют дерево выражений, которые являются ключевой частью дизайн АСТ. Он также имеет структурированный поток управления (AST) вместо того, что имеет большинство IR компилятора (CFG).
Есть ли другой прототип синтаксиса? Да! Вассемблер который тесно сотрудничает с Прототип V8 имеет совершенно другой синтаксис.
Почему другой синтаксис, чем s-выражения? С-подобный синтаксис более знаком большинству разработчиков! Это не так близко к тому, что будет содержать двоичный формат, но все же довольно близко и приятнее в использовании.
Почему это так сложно? Полезно прочитать текстовый формат описание, чтобы понять. Работа все еще продолжается, и в конце важной частью WebAssembly является двоичный формат: это то, что все инструменты будут обмениваться, и что будут использовать браузеры. Зачем вообще работать над текстовым форматом? Мы инженеры, и нам проще потреблять текст. У нас все в порядке, потом мы изменим его, основная цель текстового формата — понять людей, и нам нужно больше людей, чтобы понять, понятен ли созданный нами текст.
Текстовое представление WЕ.Б.ssемbly (WASM) будет похож на asm.js. Официальный GitHUB Часто задаваемые вопросы охватывает ваши вопросы:
Фактически, отбрасывая все принуждения, требуемые валидацией asm.js, текстовый формат WebAssembly должен быть намного более естественным для чтения и записи, чем asm.js. За пределами браузера также будут доступны инструменты командной строки и онлайн-инструменты для преобразования текста в двоичный код.
[…]По мере развития WebAssembly будет поддерживать больше языков, чем C / C ++, а также
мы надеемся, что другие компиляторы также поддержат его, даже для
Язык C / C ++, например GCC.