【发布时间】:2019-11-20 20:00:23
【问题描述】:
请任何人在不使用任何编程语言工具的情况下解释一下,将代码段(不是表达式)转换为后缀表示法的规则是什么......谢谢您的回复,提前感谢您
p>【问题讨论】:
-
如果你不是在谈论表达式,你所说的后缀符号是什么意思?
标签: compiler-construction intermediate-code
请任何人在不使用任何编程语言工具的情况下解释一下,将代码段(不是表达式)转换为后缀表示法的规则是什么......谢谢您的回复,提前感谢您
p>【问题讨论】:
标签: compiler-construction intermediate-code
假设您正在尝试将中缀表示法转换为后缀,Shunting-yard Algorithm 可能就是您要查找的内容。
【讨论】:
中间代码和最终代码使用前缀表示法,而不是后缀表示法。
示例(前缀符号):
Sum B, Mem[6455];
示例(后缀符号):
B, Mem[6455], Sum
假设您的意思是“前缀符号”。
有两组指令可以转换成前缀符号。
第一个是这样的表达式:
somevar <- (x + y);
第二,非返回函数也称为“过程”或“子例程”。
GotoXY(Column, Row);
在第二个中,函数的 Id 成为前缀 Id。指令,后跟参数。
GotoXY Column, Row
通常是 ID。表示地址:
Load RegisterA, Column;
Load RegisterB, Row;
Load RegisterC, GotoXY
Call RegisterC
这可能因一个中间代码而异。
将表达式和指令结合起来是很常见的。
GotoXY (Sum(Delta, W), B - Z);
因此,您可能必须先转换内部表达式和内部函数调用。
【讨论】: