![]() |
1
5
堆栈机器和反向波兰符号(RPN)或波兰符号(PN)之间没有直接联系。您必须区分 语法 和 语义学 .
你可以用你的
语法
操作员应该在(
这个 语义学 语言的语法-表达式被计算时发生的事情-与语言的语法分离。WebAssembly规范使用抽象堆栈机器来规定这些语义:对于每一条指令,它表示消耗了多少堆栈项,又添加了多少堆栈项。用于生成WebAssembly代码的语言可以是前缀、中缀或后缀形式。 WebAssembly文本格式使用S表达式前缀表示法。但它也可以使用中缀或后缀符号来编写。我猜选择S表达式是因为它们易于解析,而且编译器/语言人员比postfix/stackoriented语言更常见。 |