编译原理——第四章

第四章  语法分析    自上而下分析

知识总结:

1、语法分析器功能

在词法分析识别出单词符号串的基础上,分析并判定程序的语法结构是否符合语法规则。

编译原理——第四章_第1张图片

(1)从文法的起始符出发进行句子的推导,即自上而下的分析

(2)从句子本身出发,进行归约,看能否把句子规约为到起始符,即自下而上的规约

2、自上而下(推导)面临的问题

编译原理——第四章_第2张图片

3、LL(1)分析法

LL(1)L:left->right扫描输入串;L:最左推导;1:分析每一步只向前查看一个符号

(1)消除左递归

直接左递归:

编译原理——第四章_第3张图片

间接左递归:

编译原理——第四章_第4张图片编译原理——第四章_第5张图片

(2)消除回溯 提左因子

  ---条件

编译原理——第四章_第6张图片

---改造文法

编译原理——第四章_第7张图片

(3)分析条件

编译原理——第四章_第8张图片

---条件

编译原理——第四章_第9张图片

4、递归下降分析程序构造

编译原理——第四章_第10张图片

5、预测分析程序

---基础

预测分析表:指导分析过程中候选式的选取

***重点

对于给定文法构造每个非终结符的FIRSTFOLLOW集合

(1)FIRST

编译原理——第四章_第11张图片

(2)FOLLOW

编译原理——第四章_第12张图片

6、LL(1)分析中的错误处理

编译原理——第四章_第13张图片

知识应用

编译原理——第四章_第14张图片

编译原理——第四章_第15张图片

编译原理——第四章_第16张图片


编译原理——第四章_第17张图片

总结

     这一章学起来遇到不少困难,在前几章的基础上接触到了更加晦涩难懂的新内容,有的知识点甚至连定义概念都搞不懂。我个人认为的难点也是重点就是在于预测分析表的构造中的FIRSTFOLLOW集合问题,自己通过例题能够将FIRST和FOLLOW集构造出来,但是当自己真正做题时那些构造技巧很容易就混淆,而且这两者有紧密结合关系,一有不仔细,全都错了。总的来时还是对知识点理解的不透彻,缺少练习,不能合理运用知识点。这个就只能通过多加练习来解决了。

你可能感兴趣的:(编译原理)