【问题标题】:How to generate a postfix notation from code segment?如何从代码段生成后缀符号?
【发布时间】:2019-11-20 20:00:23
【问题描述】:

请任何人在不使用任何编程语言工具的情况下解释一下,将代码段(不是表达式)转换为后缀表示法的规则是什么......谢谢您的回复,提前感谢您

p>

【问题讨论】:

  • 如果你不是在谈论表达式,你所说的后缀符号是什么意思?

标签: compiler-construction intermediate-code


【解决方案1】:

假设您正在尝试将中缀表示法转换为后缀,Shunting-yard Algorithm 可能就是您要查找的内容。

【讨论】:

    【解决方案2】:

    中间代码和最终代码使用前缀表示法,而不是后缀表示法。

    示例(前缀符号):

    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);
    

    因此,您可能必须先转换内部表达式和内部函数调用。

    【讨论】:

      猜你喜欢
      • 2012-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-01
      • 2011-10-23
      • 1970-01-01
      • 2019-06-11
      相关资源
      最近更新 更多