《语法和语义分析》PPT课件.ppt

《语法和语义分析》PPT课件.ppt

ID:52109191

大小:1.41 MB

页数:116页

时间:2020-03-31

《语法和语义分析》PPT课件.ppt_第1页
《语法和语义分析》PPT课件.ppt_第2页
《语法和语义分析》PPT课件.ppt_第3页
《语法和语义分析》PPT课件.ppt_第4页
《语法和语义分析》PPT课件.ppt_第5页
资源描述:

《《语法和语义分析》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第五六章 语法和语义分析语法分析是编译程序的核心部分,其主要任务是确定语法结构,检查语法错误,报告错误的性质和位置,并进行适当的纠错工作.语义分析的主要任务是分析语法结构含义,表示成中间语言或生成目标指令.语法分析的方法有多种多样,常用的方法有递归子程序方法、运算符优先数法、状态矩阵法、LL(K)方法和LR(K)方法。归纳起来,大体上可分为两大类,即自顶向下分析方法和自底向上分析方法.26.1常用的终结符号集1首符号集First2向前看集Follow3可选集Select3设文法G[S],字汇表为V,则符

2、号串的首符号集为定义1首符号集First即First()是的所有可能推导的开头终结符或可能的є。若为空符号串,则有First()=(空集)若→є,则є∈First()First()={a︱*ay,a∈Vt,y∈V*}4例:文法G[E]:E→TE’E’→+TE’︱єT→FT’T’→*FT’︱єF→(E)︱i则有First(E)=First(T)=First(F)={(,i}First(E’)={+,є}First(T’)={*,є}First(i+i)={i}ETF(E)︱i***

3、52向前看集Follow定义设文法G[S],非终结符号U的向前看集为Follow(U)={a︱S…Ua…,a∈Vt∪{#}}*即Follow(U)为所有含有U的句型中紧跟在U之后的终结符号或#组成的集合。(若紧跟在非终结符号U后面的符号串为空时,则视U后面的符号为特殊符号#)6文法G[E]:E→E+T︱TT→T*F︱FF→(E)︱i例:Follow(F)={#,*,+,)}EE*EE+T*E(E)*ET*ET+T*ET*F*E(T)*Follow(E)={#,+,)}Follow(T

4、)={#,*,+,)}73可选集Select定义设文法G[S],并有规则A→(为符号串)则该规则的可选集为Select(A→)=First(),当不为空符号串Follow(A),当为空符号串非ε规则,求β的First,ε规则求A的Follow8例:文法G[E]:E→E+T︱TT→T*F︱FF→(E)︱iSellect(E→T)=First(T)={(,I}Sellect(F→(E))=First((E))={(}Sellect(E→E+T)=First(E+T)={(,i}Sellect(T

5、→T*F)=First(T*F)={(,i}Sellect(T→F)=First(F)={(,i}Sellect(F→i)=First(i)={i}9例:文法G[E]:S→aBc︱bBB→bB︱d︱єSellect(S→bB)=First(bB)={b}Sellect(B→є)=Follow(B)={#,c}Sellect(S→aBc)=First(aBc)={a}Sellect(B→bB)=First(bB)={b}Sellect(B→d)=First(d)={d}10例:文法G[E]E→TE’E’→

6、+E︱єT→FT’T’→T︱єF→PF’F’→*F’︱єP→(E)︱a︱b︱∧First(E)=First(T)=First(F)=First(P)={(,a,b,∧}First(E’)={+,є}First(T’)={(,a,b,∧,є}First(F’)={*,є}Follow(E)=Follow(E’)={),#}11对每一文法符号X∈VN,计算FOLLOW(X)①S为文法的开始符号,则把#加入FOLLOW(S)②若X→B,则把FIRST()-є加入FOLLOW(B)*③若X→B,若

7、є,则把FOLLOW(X)加入FOLLOW(B)中。12例:文法G[E]E→TE’E’→+E︱єT→FT’T’→T︱єF→PF’F’→*F’︱єP→(E)︱a︱b︱∧First(E)=First(T)=First(F)=First(P)={(,a,b,∧}First(E’)={+,є}First(T’)={(,a,b,∧,є}First(F’)={*,є}Follow(E)=Follow(E’)={),#}Follow(T)=Follow(T’)={),+,#}Follow(F)=Follow(F’)=

8、{),+,#,(,a,b,∧}Follow(P)={*,),+,#,(,a,b,∧}E→TE’把FIRST(E’)-є加入FOLLOW(T)E’→єFOLLOW(E)加入FOLLOW(T)中。T→FT’把FIRST(T’)-є加入FOLLOW(F)T’→єFOLLOW(T)加入FOLLOW(F)中。136.2句子的分析一自顶向下分析1自顶向下分析思想从推导的角度来看,它是从文法的开始符号出发,根据文法试着建立一个推导序列,若得到所给的句子,

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

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

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