我听说eWASM即将转变成(一种基于寄存器的语言,eWASM)的风格。Web程序集是基于寄存器的,这意味着它们更快.
那么,到目前为止,Ethereum为什么使用基于堆栈的语言呢?它基于基于堆栈的语言有什么优势,还是有其他特殊的原因?
发布于 2018-11-02 22:23:39
基于堆栈的机器比基于寄存器的机器更容易实现,我认为这是最终的决策因素。上文所链接的“以太议定书史前”文件就表明了这一点。
WebAssembly也是基于堆栈的,但是程序集是设计为结构化的:块由触发堆栈清理的结束指令显式终止。这使得翻译到注册的基础上相对直截了当。EVM的情况并非如此:堆栈是全局的,没有这样的代码块概念,可以引入堆栈差异,有时是自愿的(编译器优化等等)。
https://ethereum.stackexchange.com/questions/35628
复制相似问题