摘要:
然后就是, 递归下降分析算法(也算是自顶向下分析算法的一个子类(也算是改进))... 然后给出伪代码 ... 然而想象是美好的, 现实是残酷的 : 如上图, 真正要实现的时候却又遇到了问题, 那就是, 当读入第一个token时(此处显然是num), 发现无论是 E + T 和 T 都是可行的, 所以 阅读全文
摘要:
接下来开始研究语法分析的具体实现 ... 总来说有两种 : 自顶向下 和 自底向上 ... 先来看看自顶向下 那么具体到底是怎么实现的呢 : 那么你可以发现, 其实算法实现的过程就是以最左推导的方式在遍历所有可能的情况, 同时遍历所使用的栈, 利用栈做了一个显式的遍历代替了递归... 值得注意的是( 阅读全文
摘要:
接下来具体看推导过程... 这是对于表达式 3 + 4 * 5 的推导 ... (其实对于上图我是存在一定疑惑的, 程序从什么时候开始从非终结符到终结符的替换 ? 就是说为什么第一步能E*E, 判断E+E我可以认为是它发现3后面有个 '+', 但是判断 E * E 难道它是从左边开始看的 ? 也有另 阅读全文
摘要:
先来看看上下文无关文法, 总的来说上下文无关文法的定义如图 : BNF范式(Backus-Naur Form)经常用来表示上下文无关文法... 接下来提出一个概念叫推导 : 推导有两种, 最左推倒和最右推倒 : 那么其实词法分析的目的就可以用这个上面我们所提到的上下文无关文法来描述了 : 下面是一道 阅读全文