堆栈机与反向波兰语符号(RPN)或波兰语符号(PN)之间没有直接连接。您必须区分语法和语义。
您可以在语法中说运算符应该在其操作数的add 3 5(3 add 5)之前,()之间或之后(add 3 5)之后,这些语法的语言看起来会有所不同。一组面向语言可以使用任何的前缀/中缀/后缀的形式指定参数,我想在这个意义上,他们可以被归类为PN或RPN语言。
语言的语义学 -当计算表达式时发生的事情-与语言的语法分开。WebAssembly规范使用抽象的堆栈机来规定这些语义:对于每条指令,它都说明消耗了多少堆栈项以及又增加了多少堆栈项。用于生成WebAssembly代码的语言可以采用前缀,中缀或后缀形式。
WebAssembly文本格式使用S表达式前缀表示法。但是也可以使用中缀或后缀表示法来编写。我猜想选择S表达式是因为它们易于解析,并且与面向后缀/堆栈的语言相比,编译器/语言人员更常遇到。
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |