编译原理第四章语法分析内容总结


一、学习内容

本章我们主要学习了语法分析的过程,LL(1)分析法和预测分析程序等内容。语法分析是编译过程的核心部分,它的任务是在词法分析识别出单词符号串的基础上,分析并判定程序的语法结构是否符合语法规则。此处引入是否符合语法规则的判断方法:从文法的起始符出发进行句子的推导,或者从概念上讲,就是要建立一颗与输入串相匹配的语法分析树,即自上而下的分析;从句子本身出发,进行归约,看能否把句子规约为到起始符,即自下而上的规约。第四章主要介绍的是自上而下分析法。自上而下分析存在文法的左递归问题;回溯的不确定性,要求我们将已经完成工作推倒从来;虚假匹配的问题;不能准确地确定输入串中出错的位置;效率低等问题,因此引入LL(1)分析法。

由于自上而下分析方法不允许文法含有任何左递归,所以首先要消除文法的左递归性,假定关于非终结符P的规则为P→Pα|β,可以把P的规则改写为P→βP’;P’→αP’|ε的非直接左递归形式,二者等价。消除回溯需定义FIRST集,令文法G是不含左递归的文法,对G的非终结符的候选α,定义它的开始符号(终结首符)集合FIRST(α)={a|α→a…,a∈VT},特别地,如果α→ε,则ε∈FIRST(α)。对文法G的任何非终结符A,定义它的后继符号集合:FOLLOW(A)={a|S→…Aa…,a∈VT},特别地,如果S→…A,则#∈FOLLOW(A),当非终结符A面临输入符号a,且a不属于A的任意候选式的FIRST集但A的某个

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值