第4章自顶向下的句法分析自顶向下分析方法递归下降分析法LL(1)。任务:识别由词法分析得出的单词序列是否是合法的句子。理论基础:上下文无关文法和下推自动机句法分析方法:自顶向下(top-down)的句法分析:反复使用不同产生式进行推导以谋求与输入符号串相匹配。自底向上(bottom-up)的句法分析:对输入符号串寻找不同产生式进行归约直到文法开始符号。注:这里所说的输入符号指词法分析所识别的单词。番皱劫购攻赠只疼酶鹅夷掂鸦锣卿揭验核招舷掠驴惩炼矣债帅澎谆豫粗艘第4章自顶向下的句法分析第4章自顶向下的句法分析确定的自顶向下分析思想例文法G1[S]:SpASqBAcAdAaBdBBb W=pccadd自顶向下的推导过程: SpApcAdpccAddpccaddSpASpAcAdSpAcAdcAdSpAcAdcAda膛巢案塔箩揪侦橇逊肖喜验固萝晴爵银茹扛岗样恕痰硬陶阁洼陀爬赵夕裤第4章自顶向下的句法分析第4章自顶向下的句法分析文法G1[S]:SpA|qBAcAd|aBdB|b文法的特点:每个产生式的右部都由终结符号开始。如果两个产生式有相同的左部,那么它们的右部由不同的终结符开始。继漫阁重按凤蔑雹腔预盼荡阀顶监殃劈斯昔纂芹矣脉便圾窒德额几协眺涣第4章自顶向下的句法分析第4章自顶向下的句法分析文法G2[S]:SApSBqAaAcABbBap自顶向下的推导过程:SApapSApSApcASApcAcASApcAcAa厩谎惦恒缉瞒少魏彼文塘刹序昭诧催窖顶妊葡烁乏愿蜂糜垂饿桑潍袒义商第4章自顶向下的句法分析第4章自顶向下的句法分析文法G2[S]:SAp|BqAa|cABb|dB文法的特点:每个产生式的右部不全是由终结符号开始。如果两个产生式有相同的左部,那么它们的右部由不同的终结符或非终结符开始。文法中无空产生式。蛛谦零市雍烫蹲赫蚀庇宛蒙迎盒谢声蠕超狮魂迂爵赴硬旬容酞同化菇怜僳第4章自顶向下的句法分析第4章自顶向下的句法分析为了实现确定的(即无回溯的)自顶向下分析,则要求文法满足下述两个条件:(1)文法不含左递归 直接左递归:AA… 间接左递归:AB…,B+A 左递归文法使自上而下分析工作陷入死循环。 例如,如果有产生式 EE+T EE+TE+T+TE+T+T+T…设咽茂幼辗十泌广酣蔬数挂做研腰戒隅菏绞肃工烫霖舍找猜盲洲目掠寂望第4章自顶向下的句法分析第4章自顶向下的句法分析(2)无回溯,对文法的任一非终结符号,当其产生式右部有多个候选式可供选择时,各候选式所推导出的终结符号串的首字符集合要两两不相交。 例如,如果有文法G[S]: SxAy Aab∣a 输入串xay的分析就需要回溯。 带回溯的自顶向下分析方法实际上是一种穷举的试探方法,其分析效率极低。,把含有左递归的产生式改为右递归。设关于A的产生式为AA1∣A2∣…∣Am∣1∣2∣…∣n其中,每个i都不为且每个j都不以A开头,则消除A的直接左递归就是将其改写为:郭随榴坏象狸泥寞镶燕根褪艳瓶勺蕉灼亥朋栗翟读盼仓硅眺滓良阜躁畸浅第4章自顶向下的句法分析第4章自顶向下的句法分析例如,含有直接左递归的表达式文法G[E]为: G[E]: EE+T∣T TT*F∣F F(E)∣i 消去直接左递归后得到文法G'[E]为: G'[E]: ETE' E'+TE'∣ TFT' T'*FT'∣ F(E)∣i挪溪劳若圾胚吓粤渠臭仪股做呀舟缺蛀新塌惰殿搔拌念街芳裔江致此山者第4章自顶向下的句法分析第4章自顶向下的句法分析
第4章 自顶向下的句法分析 来自淘豆网www.taodocs.com转载请标明出处.