1、复习要点,第1章 引论 编译程序、解释程序 编译程序的5个阶段 遍 编译前端与后端,复习要点,高级语言极其语法描述(P2.3节) 上下文无关文法、最左推导、最右推导、句子、句型、语言、语法分析树、二义性文、形式语言分类,复习要点,词法分析 正规式、正规集、有限自动机(确定的有限自动机、非确定的有限自动机) 三者之间的相互转化 自动机的确定化、化简,复习要点,语法分析-自上而下分析 递归下降分析法 LL(1)分析法 消除左递归、提左因子、FIRST集、FOLLOW集 P73:LL(1)文法的判定条件 LL(1)分析器的构造:P76-79,复习要点,语法分析-自下而上分析 移进-归约、规范规约、短
2、语、直接短语、句柄 算符优先分析 算符文法、素短语、最左素短语 LR分析法 LR(0)、SLR,LR分析法考核要点,构造文法GS的LR(0)项目集规范族及相应的DFA。 构造文法的LR(0)或SLR分析表 对于输入串xxxxxxx,给出LR(0)或SLR分析器所作出的动作。,复习要点,属性文法和语法制导翻译 属性文法、继承属性、综合属性、S-属性文法、L-属性文法、翻译模式 S-属性文法的自下而上计算,复习要点,语义分析和中间代码产生 中间语言形式:后缀式、三地址代码(主要是四元式) 控制语句的翻译,字母表0,1,2,3 对给定正则表达式 0*(1 | 23)(0 | 12)0(1 | 13)
3、* 构造与之等价的NFA M。,习题举例,设文法G(S): SS+aF|aF|+aF F*aF|*a 消除左递归和回溯; 构造非终结符的FIRST和FOLLOW集合; 构造预测分析表 (4) 给出句子a*a+a*a的LL(1)分析过程(格式:栈,输入缓冲区,动作),习题举例,解: SaFS|+aFS S+aFS| F*aF FF| FIRST(S)=a,+ FOLLOW(S)=# FIRST(S)=+, FOLLOW(S)=# FIRST(F)=* FOLLOW(F)=+,# FIRST(F)=*,) FOLLOW(F)=+,#,习题举例,习题举例,文法GS的产生式为:SS + A | AAA * S |BBa |(S)给出(a+a)*a的最左推导、最右推导及相应的分析树;列出句型B + A * B的所有短语、直接短语和句柄。,习题举例,已知文法G=(b,e,f,S,S,R,T,S,P) 其中P: (0) SS (1) SbRST (2) SbR (3) Re (4) Tf构造 文法的LR(0)项目集规范族构造 识别活前缀的DFA这个文法哪类LR文法并说明理由,习题举例,