编译原理第4章 语法分析.ppt

编译原理第4章 语法分析.ppt

ID:51591858

大小:571.50 KB

页数:59页

时间:2020-03-24

编译原理第4章 语法分析.ppt_第1页
编译原理第4章 语法分析.ppt_第2页
编译原理第4章 语法分析.ppt_第3页
编译原理第4章 语法分析.ppt_第4页
编译原理第4章 语法分析.ppt_第5页
资源描述:

《编译原理第4章 语法分析.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第四章语法分析9/18/20211编译原理第四章语法分析第四章语法分析§1、概述一.语法分析器的功能9/18/20212编译原理第四章语法分析语法分析:在词法分析的基础上,根据语法规则,从单词符号串中识别出各种语法成分,同时进行语法检查,检查各种语法成分在语法结构上的正确性。9/18/20213编译原理第四章语法分析二.语法分析方法自上向下分析法:从文法的开始符号出发,以给定的符号串为目标,根据文法规则,正向推导出给定符号串的一种方法。自下向上分析法:从给定的符号串出发,反复使用文法中有关产生式的左部去替换当前符号串中的相应子串,逐步归约成文法开始符号的一种方法。自上向下分析法:递归下降、

2、LL(1)分析法自下向上分析法:算符优先、LR分析法9/18/20214编译原理第四章语法分析§2、自上而下分析方法 一、带回溯的自上而下分析法基本思想:对任何输入串,试图用一切可能的方法,从文法的开始符号出发,采用最左推导,自上而下为输入串建立一棵语法树。例如:设有文法:S→xAyA→**

3、*输入串:x*y看匹配过程SAxySAxySAxy***9/18/20215编译原理第四章语法分析二、存在的问题以及解决的方法1.左递归:当文法为左递归时,会使分析程序进入无限循环之中。若文法中有非终结符P=>Pα(文法左递归)输入某输入串w=a1a2…an就有P=>Pα=>Pαα…如此循环,不会终止

4、+9/18/20216编译原理第四章语法分析①消除直接左递归方法一:引进新的非终结符,改写文法规则式。P→Pα

5、βP→βP′P′→αP′

6、ε(将文法中的左递归结构变成等价的右递归结构)例如:算术表达式文法左递归E→E+T

7、TE→TE′T→T*F

8、FE′→+TE′

9、εF→(E)

10、iT→FT′T′→*FT′

11、εF→(E)

12、i9/18/20217编译原理第四章语法分析一般情况:有多个直接左递归:P→Pα1

13、Pα2

14、…

15、Pαm

16、β1

17、β2

18、…

19、βn其中,每个α都不等于ε,而每个β都不以P开头,则上式改写为P→β1P′

20、β2P′

21、…

22、βnP′P′→α1P′

23、α2P′

24、…

25、αmP′

26、ε例如:A→Ac

27、

28、Aad

29、bd

30、e改写为:A→bdA′

31、eA′A′→cA′

32、adA′

33、ε9/18/20218编译原理第四章语法分析方法二:采用扩充的BNF表示法改写文法规则式用花括号{α}表示符号串α出现0次或多次。即α*标识符:I→l{l

34、d}或I→l{l

35、d}7即将A→Aα

36、β改写成A→β{α}中括号[α]表示α是可供选择的符号串。<条件语句>→ifBthen<语句>[else<语句>]使用圆括号,可以在规则中提因子。U→XY

37、XW

38、…

39、XZU→X(Y

40、W

41、…

42、Z)例如:算术表达式文法左递归E→E+T

43、TE→T{+T}T→T*F

44、FT→F{*F}F→(E)

45、iF→(E)

46、i9/18/20219编译原理第

47、四章语法分析②消除所有左递归的算法(1)把文法G的所有非终结符按任一顺序排列成P1,P2,…Pn;(2)执行循环语句:fori:=1tondo将规则Pi→Pjγ改写;{改写方法:Pj→δ1

48、δ2

49、…δn则Pi→δ1γ

50、δ2γ

51、…δnγ}消除关于Pi的直接左递归end(3)化简由(2)得到的文法。9/18/202110编译原理第四章语法分析例如:消除下面文法的左递归。文法:S→Qc

52、cQ→Rb

53、bR→Sa

54、a(1)排列:R,Q,S(2)对R:没有直接左递归,不执行内循环对Q:将R代入Q变为Q→Sab

55、ab

56、b,也没有直接左递归,不执行内循环。对S:将Q代入S变为S→Sabc

57、abc

58、bc

59、c

60、消除S的直接左递归,得下面文法:S→abcS′

61、bcS′

62、cS′S′→abcS′

63、ε(3)S→abcS′

64、bcS′

65、cS′Q→Sab

66、ab

67、bS′→abcS′

68、εR→Sa

69、a若排列方法不同,得到的文法也可能不同,但等价9/18/202111编译原理第四章语法分析2.回溯问题问题:如果对同一个非终结符号,有若干个产生式右部A→α1

70、α2

71、…

72、αn,选择哪一个产生式匹配呢?匹配不好就产生回溯。回溯使语法分析器的动作不确定。分析:要消除回溯,必须使文法具有一定的特性。例如:S→cAdA→ad

73、a输入符号w=cad分析:要求各规则式右部α1

74、α2

75、…

76、αn所推出的终结首符号的集合两两不相交。定义:

77、符号串αi终结首符号的集合:FIRST(αi)={α

78、αi=>a…,α∈VT}*9/18/202112编译原理第四章语法分析条件一:对文法中每一个非终结符A,如有规则:A→α1

79、α2

80、…

81、αn则下面条件成立FIRST(αi)∩FIRST(αj)=Ф(i≠j)上例中:FIRST(ab)∩FIRST(a)={a}∩{a}={a}≠Ф改写方法:提取公共左因子A→δβ1

82、δβ2

83、…

84、δβn

85、γ1

86、γ2

87、…γm则:A→δA′

88、γ1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。