3ey*_*ven 5 c++ assembly webassembly
我听说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
Run Code Online (Sandbox Code Playgroud)
在nasm for windows
或者它只能从C/C++和其他语言编译而创建?
JF *_*ien 13
WebAssembly的当前工作原型已经具有语法,该语法也由WAVM后端使用的LLVM后端(CHECK:这些测试的部分)发出.另见ilwasm和WABT.
这是官方的,最终的文本语法吗?不,但它可能会在稍后成为正式(2017年3月更新:这可能很快就会发生).
当前的WebAssembly二进制格式是一个堆栈机器,它与WebAssembly采用的原始AST方法相比发生了重大变化.s表达式本身并不适合表示堆栈计算机,但它们足够好,简单,并且避免无休止的冲突.
原始答案:
它具有WebAssembly的重要属性,表示为s表达式,它本身具有表达式树,这是AST设计的关键部分.它还具有结构化控制流(AST),而不是大多数编译器IR具有的(CFG).
还有其他原型语法吗?是! 与V8原型密切配合的wassembler具有完全不同的语法.
为什么另一种语法比s表达式?大多数开发人员都更熟悉类C语法!它并不像二进制格式所包含的那样接近,但它仍然非常接近并且使用起来更好.
为什么这么复杂?阅读要理解的文本格式描述很有用.工作仍在进行中,最后WebAssembly的重要部分是二进制格式:它是所有工具将交换的内容,以及将使用的浏览器.那为什么甚至可以使用文本格式呢?我们是工程师,我们更容易使用文本.我们可以在以后查阅它,文本格式的主要目标是人类的理解,我们需要更多的人来判断我们创建的文本是否可以理解.
| 归档时间: |
|
| 查看次数: |
2209 次 |
| 最近记录: |