《编译原理》学习总结--第四章

《编译原理》学习总结--第四章  语法分析 自上而下分析
一.总结
    语法分析是编译过程的核心部分,语言的语法结构是用上下文无关描述的,任务是按照文法的产生式识别输入符号串是否为一个句子。学习完这一章,我们应该学会解决左递归跟回溯这两大问题,学习寻找first和follow集,学习判断是不是ll(1)文法,学习构造语法分析表。
.知识点

          1 自上而下分析法:从文法的开始符号出发,向下推导,推出句子。
          2 面临的问题:
                (1)左递归性: 无限循环
                (2) 回溯    :穷举法 效率低     
         3 LL(1)分析法
                  (1)文法不含左递归
                  (2)每一个非终结符A的各个产生式的候选式的FIRST集两两不相交。
                  (3)对于文法中的每个非终结符A,若它的某个候选首符集包含ε,则FIRST(A)∩FOLLOW(A)=Φ
                     如果一个文法G满足以上条件,可以为他构造一个不带回溯的自上而下的程序。
        4 First集和Follow集
                 (1)First集令文法G是不含左递归的文法,对G的非终结符的候选α,定义它的开始符号(终结首符)集合:

                                       
                 (2)Follow集:对文法G的任何非终结符A,定义它的后继符号集合:

                                      
        5 预测分析表的构造——FIRST(X)
                (1)若X终结符,则FIRST(X)={X}
                (2)若X为非终结符,且有X->a…的产生式,则把a加入到FIRST(X)中;
                (3)若X->Y…是一个产生式,且Y为非终结符,则把FIRST(Y)-ε加入到FIRST(X)中;
                         若X->Y1Y2Y3….YK,是产生式,Y1Y2Y3….Yi-1是非终结符,而且ε属于
FIRST (Yj)(1<=j<=i-1),
                  则把FIRST(Yj)-ε加入到FIRST(X)中;如果ε属于所有的FIRST(Yj),则ε加入到FIRST(X)中。

三 习题

四 感悟
    这一章的学习一如既往地抽象,但是联系上几张的内容 已经可以对于编译原理这门课程有一个大致的理解与学习了。课后复习是比较有必要的,能帮助你更好的掌握所学的知识以及上课中遇到的问题。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值