软考复习之程序设计语言基础知识(二)

1.后缀表达式(逆波兰式)

我们平时写的算术表达式都算中缀表达式,运算符号在式子中间,

(或中缀记法)是一个通用的算术或逻辑公式表示方法, 操作符是以中缀形式处于操作数的中间(例:3 + 4),中缀表达式是人们常用的算术表示方法。

前缀表达式(例:+ 3 4)或后缀表达式(例:3 4 +)相比,中缀表达式不容易被计算机解析,但仍被许多程序语言使用,因为它符合人们的普遍用法。

与前缀或后缀记法不同的是,中缀记法中括号是必需的。计算过程中必须用括号将操作符和对应的操作数括起来,用于指示运算的次序。

然后

后缀表达式,指的是不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行

 

软考真题:
算术表达式“(a-b)*(c+d)”的后缀式是()。
a b - c d + *   

是不是感觉so easy。。哼,这只是一个开始  -_-。

2.三地址码:也称为四元式,它和上面的逆波兰式都是编译过程中生成中间代码的一种表现形式,为什么要生成中间代码呢,大概是为了兼容性还有代码优化吧。

三地址码:操作符 操作数1 操作数2 操作结果。

(0-0   大概专业书没有好看的吧 0-0 没有最难看只有更难看 -_-)

 

表达式语法树后缀形式,只需要对树进行后序遍历即可,后序遍历的结果,后序遍历就是左右根节点这样遍历。(不明白 -_-  )

二叉树进行后序遍历,得出结果与该后缀表达式一致的则为与其等价的语法树。

(软考真    敷衍  希望软考老师不要看见这句话 -_- 大家牢牢记住下面这个式子,不管是后缀表达式还是语法树 它最少出现了2次了) 

1 对于后缀表达式a b c - + d *(其中,-、+、*表示二元算术运算减、加、乘),与该后缀式等价的语法树为(23)。

 

与算术表达式“(a+(b-c))*d“ 对应的树是(21)。

看了语法树的表达式以后都不能好好学二叉树了,,,遇见语法树题目,大家跟着感觉走吧,剩下就是什么自动机了,,,,还有文法表达式。。

知道了0型文法,1型文法,2型文法,3型文法概念,有用么,没有很大用。0-0  气死了 不搞明白文法,自动机……  暂时不玩别的 了,这个(垃圾垃圾垃圾垃圾垃圾垃圾垃圾垃圾垃圾垃圾垃圾)*

如果你想了解文法 形式语言 自动机可以看看这个:第10章 第十一章 第十二章

有用么,,我只能说我又知道了一点点,那些编译原理书对新人太不友好了,一上来就是各种符号,还有图,树,各种数学推导大概以为我们都知道吧,我们要是知道还看你们干嘛,真是zz,,

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值