大连理工大学编译原理习题课.pptx

编译原理习题课(第三章起)LL文法套路总结1. 计算FIRST集合(第一个终结符,或者? )2. 计算FOLLOW集合(三个要点,0. 开始记号的FOLLOW包含$;1. 句型中非终结符后面有内容;2. 产生式右部末尾非终结符, 把左侧非终结符FOLLOW加入)。一遍可能算不完,不重不漏,注意推出?的情况3. 如果问是否是LL文法,用两条规则判断( A ?? | ? 有FIRST(? ) ? FIRST(? ) = ?;若? ?* ? ,那么FIRST(?) ? FOLLOW(A) = ? )4. 如果要画非递归分析表(3个要点,0. 每行对应一个非终结符,每列对应一个终结符;1. 对于A ? ?的FIRST集合,把产生式写在行列(FIRST(?))交叉处;2. 如果?在FIRST(?),把A ? ?写在行列(FOLLOW(A))交叉处)SLR文法套路总结1. 拓广文法2. 项目集规范族1. 新加开始记号前加点号(初始状态的核心项目)2. 算闭包(点号落在非终结符前,抄非终结符产生式,加点号,重复算闭包,直到算不下去为止)3. 对闭包里每个点号后的符号(终结/非终结符均可),尝试点号向右移动一位(可能对应多个项目),得到新的核心项目。对核心项目们算闭包,得到新状态(判断是否和已有状态重复)。从当前状态出发一条边,边上符号是点号移动跨过的符合,到达时新计算的状态4. 按层次计算状态,

文档评论(0)

1亿VIP精品文档

相关文档