Fork me on GitHub
文章目录
  1. 1. 问题
  2. 2. 产生布尔表达式三地址代码的语义规则
  3. 3. 生成三地址中间代码的步骤
    1. 3.1. 语法树
    2. 3.2. 对表达式进行归约
    3. 3.3. 三地址代码
  4. 4. 感谢

问题


考虑如下表达式:a < b or c < d and e < f

假定整个表达式的真假出口已分别置为Ltrue和Lfalse,则按表下面的语义规则生成的三地址代码为?(假定and优先级高于or)

产生布尔表达式三地址代码的语义规则


语义规则如下:
布尔表达式

生成三地址中间代码的步骤


生成三地址中间代码的过程如下:

语法树

语法分析树

对表达式进行归约


根据产生式,语义规则,进行相应的语义动作:

语义计算

三地址代码


生成的三地址代码为:

1
2
3
4
5
6
    if a < b goto Ltrue
goto L2
L2: if c < d goto L1
goto Lfalse
L1: if e < f goto Ltrue
goto Lfalse

感谢

  感谢访问我的个人博客的朋友,如果您感觉本站对您搜索的问题有所帮助,并感觉对本站还满意的话,顶一下吧,希望您把本站分享给您的朋友!在此对您表示由衷的谢意! :)