- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一语法分析的功能:.doc
一.语法分析的功能:
语法分析是编译过程的核心部分,它的主要任务是按照和程序语言的语法规则,从由词法分析输出的源程序符号串中识别出各类语法分析成分,同时进行语法检查,为语义分析和代码生成作准备。
二.语法分析的目的:
语法分析程序以词法分析输出的符号串作为输入,在分析过程中检查这个符号串是否为该程序语言的句子。
三.语法分析的过程:
首先,定义词法分析:
词类编码表
单词 = + * : ; { } ( ) and if then while do int 标志符 编码 1 2 3 4 5 6 7 8 9 10 31 32 33 35 36 37 25 文法
说明语句 表达式 布尔表达式 句法 0、P’→P
1、P→id () L;R
2、L→L;D
3、L→D
4、D→id:int 5、E→E+T
6、E→T
7、T→T*F
8、T→F
9、F→(E)
10、F→id 11、B→B and B
12、B→idid
13、M→id=E
14、S→if B then M
15、S→while B do M
16、S→M
17、N→N;S
18、N→S
19、R→{N} 再者,语法分析:
1.构造SLR分析表LR分析表的方法是:
(1)根据文法构造识别规范句型活前缀的有穷自动机DFA
(2)由DFA构造SLR分析表
?构造DFA:
(1) DFA是一个五元式M=(S, V, GOTO, S0, Z)
S:有穷状态集
在此具体情况下,S=LR(0)项目集规范族LR(0)。
项目集规范族:其元素是由项目所构成的集合.
V:文法字汇表
S0:初始状态
GOTO:状态转移函数 GOTO[Si,X]=Sj Si ,Sj∈S Si ,Sj为项目集合 X∈Vn∪Vt
表示当前状态Si面临文法符号为X时,应将状态转移到 Sj
Z:终态集合 Z=S-{S0} 即除S0以外,其余全部是终态
构造DFA方法:
1) 确定S集合,即LR(0)项目集规范族,同时确定S0
2) 确定状态转移函数GOTO
构造LR(0)的方法:
SLR分析表的构造过程是先求出文法的LR(0)项目闭包集合, 然后通过该集合与follow集合就可以确定SLR分析表对于文法的LR(0)项目就是在产生式右部某处加点. 如产生式为A-XYZ则LR(0)项目:
A-.XYZ
A-X.YZ
A-XY.Z
A-XYZ.
此外还要对文法进行扩展, 加入A是文法的开始符号, 这扩展为A’-A
LR(0)项目闭包集合的求法是:
1) 初时集合包含开始符号的LR(0)项目闭包运算.
2) 如果集合中存在产生式A-X.YZ, 且存在产生式Y-U, Y-.U不在该集合中时, 将
Y-.U加入该集合.
3) 当一个集合I0完成后求它的状态转换集合, 对于产生式A-X.YZ当遇到Y时状态转换成A-XY.Z, 对于集合I0的所有产生式求它的所有的状态转换集合.
重复执行制导不再有新的状态集合产生.’)={$}
FOLLOW(P)={$}
FOLLOW(R)={$}
FOLLOW(B)=
{and,then,do} FOLLOW(P’)={$}
FOLLOW(P)={$}
FOLLOW(R)={$}
FOLLOW(B)=
{and,then,do} FOLLOW(D)={;}
FOLLOW(L)={;}
FOLLOW(M)={;,}}
FOLLOW(S)={;,}} FOLLOW(F)={*,+,),;,}}
FOLLOW(T)={*,+,),;,}}
FOLLOW(N)={;,}}
FOLLOW(E)={ +,),;,}} 有效项目集
编号 有效项目集 编号 有效项目集 编号 有效项目集 0 P’→.P
P→.id()L;R 16 M→id=E.
E→E.+T 36 F→id. 37 T→F. 1 P’→P. 17 R→{N.}
N→N.;S 38 E→T.
T→T.*F 2 P→id.()L;R 3 P→id(.)L;R 18 R→{N}. 39 T→T*.F
F→.(E)
F→.id 4 P→id().L;R
L→.L;D
L→.D
D→.id:int 19 N→N;.S
M→.id=E
S→.M
S→.if B then M
S→.while B do M 40 T→T*F. 41 F→(.E)
E→.E+T
E→.T
T→.T*F
T→.F
F→.(E)
F→.id 5 D→id.:int 6 D→id:.int 20 N→N;S. 7 D→id:int. 21 N→S. 8 L→D. 22 S→M. 9 P→id(
您可能关注的文档
- 河南省煤矿开采水害防治技术研究.pdf
- 一、实验目的-绍兴文理学院本科教学“质量工程”网站——….doc
- 河南省煤矿瓦斯治理存在问题及对策.pdf
- 河南省矿产资源利用现状调查全面启动.pdf
- 河南省舞阳铁矿田太古代古地史及铁矿的形成过程研究.pdf
- 河南省赵案庄式铁矿区地质构造和“山字型”构造的研究.pdf
- 河南省采煤塌陷区土地复垦探析.pdf
- 一、开户方面的问题.pdf
- 河南矿区淹井原因及防治对策.pdf
- 河南萑香洼金矿床地球化学研究.pdf
- 难点详解鲁教版(五四制)6年级数学下册期末测试卷带答案详解(考试直接用).docx
- 难点详解鲁教版(五四制)6年级数学下册期末试题【培优】附答案详解.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题及完整答案详解(全国通用).docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题含完整答案详解(名师系列).docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题含完整答案详解【全国通用】.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试卷(突破训练)附答案详解.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试卷(能力提升)附答案详解.docx
- 难点详解京改版数学9年级上册期中试卷附参考答案详解【突破训练】.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题含完整答案详解(有一套).docx
- 难点解析鲁教版(五四制)7年级数学下册期末试卷带答案详解(夺分金卷).docx
文档评论(0)