上一页 1 ··· 5 6 7 8 9 10 11 下一页
  2016年5月22日
摘要: 从这一节开始研究自底向上的分析算法, 该类分析算法分析能力更加强大, 其中目前广泛运用在实际当中的一类就是LR了.. 具体来讲LR是这样的... 注意这边LR, L指的是读入程序仍然是自左向右, 但是R指的是最右推倒, 如果右边的推导从下往上看的话, 你会发现其实就是最右推导... 接着来看一个更加 阅读全文
posted @ 2016-05-22 21:29 内脏坏了 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 之前一节讲完了ll(1)分析算法的主要框架, 现在我们来看看冲突的处理...冲突处理的方式有很多种, 这里讲的这种叫做消除左递归... 右上文法是左递归文法, 你会发现任何一个左递归文法都不是ll(1)的, 为什么呢 ? 比如你看文法的第0条和第1条, 分别可以写成 : E = T + T + T 阅读全文
posted @ 2016-05-22 13:57 内脏坏了 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 考试昨天下午就算考完了, SE考的好像不太理想啊, 概念多实践少的科目果然不适合我啊(复习的时候, 坚持不了5分钟就开始玩手机, 真是日了狗, 然后开始自责, 然后循环...) 唯一一个好消息是好像我dbi是年级最高分, 不过对于这种没什么技术含量的考试分的高低其实也没什么重要, 不挂科其实都还行吧 阅读全文
posted @ 2016-05-22 00:07 内脏坏了 阅读(187) 评论(0) 推荐(0) 编辑
  2016年5月15日
摘要: 类似于词法分析, 语法分析也可以有自动生成器, 之前讨论了递归下降的分析算法(适用于手撸词法分析器), 接下来几节来研究生成器生成分析器的内部实现原理... 还是自顶向下, 先看第一类... 接下来是结合具体的分析表进行分析 ... (其实我在这边也是疑问有点多啊 ... 也不知道这表是怎么生成的, 阅读全文
posted @ 2016-05-15 21:27 内脏坏了 阅读(245) 评论(0) 推荐(0) 编辑
  2016年5月14日
摘要: 这两天都没更, 主要是马上要连着要考三门(16, 18, 20), 都没时间学编译器了, 等过了这段时间应该能有很多时间来搞这个, 之后我准备先把之前写的那个词法分析器生成器改造一下, 弄个最简版的正则引擎出来玩玩, 不过这些都是后话了, 今天似乎也没什么时间, 也就把这单元的作业写了一下... 代 阅读全文
posted @ 2016-05-14 19:09 内脏坏了 阅读(174) 评论(0) 推荐(0) 编辑
  2016年5月12日
摘要: 然后就是, 递归下降分析算法(也算是自顶向下分析算法的一个子类(也算是改进))... 然后给出伪代码 ... 然而想象是美好的, 现实是残酷的 : 如上图, 真正要实现的时候却又遇到了问题, 那就是, 当读入第一个token时(此处显然是num), 发现无论是 E + T 和 T 都是可行的, 所以 阅读全文
posted @ 2016-05-12 13:51 内脏坏了 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 接下来开始研究语法分析的具体实现 ... 总来说有两种 : 自顶向下 和 自底向上 ... 先来看看自顶向下 那么具体到底是怎么实现的呢 : 那么你可以发现, 其实算法实现的过程就是以最左推导的方式在遍历所有可能的情况, 同时遍历所使用的栈, 利用栈做了一个显式的遍历代替了递归... 值得注意的是( 阅读全文
posted @ 2016-05-12 13:48 内脏坏了 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 接下来具体看推导过程... 这是对于表达式 3 + 4 * 5 的推导 ... (其实对于上图我是存在一定疑惑的, 程序从什么时候开始从非终结符到终结符的替换 ? 就是说为什么第一步能E*E, 判断E+E我可以认为是它发现3后面有个 '+', 但是判断 E * E 难道它是从左边开始看的 ? 也有另 阅读全文
posted @ 2016-05-12 11:21 内脏坏了 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 先来看看上下文无关文法, 总的来说上下文无关文法的定义如图 : BNF范式(Backus-Naur Form)经常用来表示上下文无关文法... 接下来提出一个概念叫推导 : 推导有两种, 最左推倒和最右推倒 : 那么其实词法分析的目的就可以用这个上面我们所提到的上下文无关文法来描述了 : 下面是一道 阅读全文
posted @ 2016-05-12 00:22 内脏坏了 阅读(171) 评论(0) 推荐(0) 编辑
  2016年5月11日
摘要: 首先我们来分析一下语法分析器的任务 : 将由词法分析器返回的Tokens(记号流)经过检查和处理生成根据规定的语法规则来生成抽象语法树... 最终大概是这样 (两个输入 一个输出): 然后是语法树, 大概是这样 : 那么接下来看看在这一阶段所需要学习的内容 : 大概就是这样... 阅读全文
posted @ 2016-05-11 22:29 内脏坏了 阅读(172) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 下一页