语法分析是编译过程的核心部分,这一章我们主要学习了自上而下的分析方法进行语法分析,上一章已经对句法有了一定的了解,下一步就是要学好语法分析,这样才能够在后面的学习中部吃力,语法分析也是编译原理最基础的部分。我觉得学完这一章我们应该学会如何直接消除左递归,寻找产生式的first和follow集,学会判断所给出的文法是不是ll(1)文法,以及构造相应的语法分析表等问题。我的总结主要分为三部分:概念内容的总结,典型例题分析(给出例题的解决方法,体现对知识的运用),一点感悟。
一.概念内容总结:
1.语法分析的过程:自上而下推导,自下而上规约。
2.语法分析的工作:
1.
从文法的起始符出发进行句子的
推导
,即自上而下的分析
2.
从句子本身出发,进行
归约
,看能否把句子规约为到起始符,即自下而上的
规约
分析的结果:构造一棵语法树。
3.自上而下的分析面临的问题:
1.文法的左递归问题
2.回溯的不确定性,要求我们将已经完成工作推倒从来,
3.虚假匹配的问题
4.不能准确地确定输入串中出错的位置
5.效率低。
4.消除左递归的公式:
设有产生式
P→Pα1|Pα2|…|Pαm|β1|β2|…|β