编译原理

您所在的位置:网站首页 编译原理简介范文 编译原理

编译原理

2023-10-04 18:34| 来源: 网络整理| 查看: 265

一、求后缀表达式

可能就是一填空题,考试应该也不会太复杂,要会,掌握着由外到内求解思想即可; 在这里插入图片描述 其实就是二叉树的后序遍历,左右根;拆分的顺序就是由左到右顺序进行,小括号内的最后拆(由外到内); 在这里插入图片描述 在这里插入图片描述 后面三道的具体步骤就不写了; 在这里插入图片描述

在这里插入图片描述

二、求三元式

三元式的拆分求解顺序和后缀表达式相反,由内到外; 三元式的形式(运算符,参数1,参数2) 在这里插入图片描述

1.三元式: 三元式的求解过程是由内到外,然后右左向右,可以发现先拆小括号里面,然后再按顺序向右求解;要盯着三元式的形式去填,(运算符,参数1,参数2),参数当然也可以是一个三元式,比如(2)的第一个参数就是(1);变负数有点特殊,操作符是@,然后第一个参数就是想变负数的参数,第三个参数为空,画一条线即可; 在这里插入图片描述 2.间接三元式:

间接三元式其实就是对三元式做一个小改动,通过上图可以发现 (1)、(5)其实是一样的,所以可以把(5)删去,下面用到(5)的可以替换为(1);

在这里插入图片描述

三、求四元式

四元式的形式(运算符,参数1,参数2,运算结果(临时变量名))

1. 根据表达式写四元式

以上题的表达式为例,写出其四元式 在这里插入图片描述 同理也是盯着四元式的形式(运算符,参数1,参数2,运算结果(临时变量名))去写,和三元式不一样的就是多一列,多了一个运算结果,其实就是个变量,所以他叫四元式;然后三元式引用的(x)换成Tx;别的都一样, 在这里插入图片描述

2. 根据代码写四元式(重点)

普通四元式的形式(运算符,参数1,参数2,下一步跳转的地址编号),对于赋值操作的四元式形式:(运算符,参数1,参数2,临时变量);每个四元式的前面有一个地址编号,用于跳转用; 考试要考,要会做!

例题1

在这里插入图片描述

赋值操作比较特殊,有三步,第一步是进行运算结果存入T,第二步是把运算结果T赋值给想赋值的变量C,第三步就是下一步跳转的地址编号;和上面表达式写的四元式有点不同的是,运算符前面加了个 j,j就是跳转指令;然后第四列的表示含义不同:赋值操作时(运算符为±*/、:=)第四列和上面的四元式一样,表示变量;其他操作时,第四列表示下一步跳转的地址编号;可以发现,四元式对于每一个条件都是成对出现的,当满足某个条件,进行操作后,第四列存储执行完当前操作后的,下一步跳转的地址编号;这里看的答案解析给的是0,默认当做程序跳出;下面一道题,用一种新的写法,对加一个四元式当做程序出口; 在这里插入图片描述 例题2

在这里插入图片描述

地址为109的表示程序出口,上题默认用的0,感觉还是这种写法比较好;需要注意当while后面的C>0没满足时,直接结束程序,而不是再跳到if(A


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3