🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
上篇讲述了上下文无关文法的推导以及句子的语法树。 **本篇继续对句型分析**。 **开始教程**: 对于句子而言,语法树是句子的几何表示形式,把句型形象直观的表示出来了,语法树是句型分析结构分析很好的工具。本篇 所说的句型分析是,给定一个符号串,是否为某文法的句型,也就是给定一串字符串,视图按照某文法的规则为该符号构造推导或 推导树,以此识别他是否是该文法的一个**句型**,当符号串全部是由非终结符组成的时候,就可以知道他是否是某个文法的**句子**。 这样根据一个句子得到的树,称为分析树。 句型分析是一个识别输入符号串是否为语法上正确的程序的过程。 我们的分析算法分为:**自上而下和自下而上**两大类。 **自上而下分析算法**: 从文法的开始符出发,反复使用各种产生式,寻找“匹配”于输入符号的推导。                  ![](https://box.kancloud.cn/2016-06-12_575d10a950ebe.jpg) **自下而上的分析算法**: 从输入符号串开始,逐步进行“归约”,直至规归约到文法的开始符号。 ![](https://box.kancloud.cn/2016-06-12_575d10a9630e3.jpg) **从语法树的角度来描述这两种**:**自上而下**是从开始开始推导,使语法树的末端正好是输入符号串。 **自下而上**是把输入的符号串作为语法树末端的符号串,自底向上的构造语法树。 句型分析的一些说明: ![](https://box.kancloud.cn/2016-06-12_575d10a976ae6.jpg) 例如: ![](https://box.kancloud.cn/2016-06-12_575d10a976ae6.jpg) **文法的一些实用性规则**: 在实用中,我们限制文法不能含有有害规则和多余规则。 **有害规则**:形为U——>U的规则。 **多余规则**:一个句子的归到用不到的规则。 本篇讲述到这里,下一篇讲解词法分析,词法分析的工具--正规式。 愿开心阅读,共同提高(*^__^*) 。