[工学]语法分析

[工学]语法分析

ID:40234971

大小:566.50 KB

页数:125页

时间:2019-07-27

[工学]语法分析_第1页
[工学]语法分析_第2页
[工学]语法分析_第3页
[工学]语法分析_第4页
[工学]语法分析_第5页
资源描述:

《[工学]语法分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、7/22/20211《编译原理》冶金工业出版社编译原理——第四章第4章语法分析语法分析是编译过程的核心部分,同词法分析一样,是编译系统逻辑组成的经典划分中必不可少的部分。语法分析的任务是:按照文法,从源程序符号串中识别出各类语法成分,同时进行语法捡查,为语义分析和代码生成做准备。7/22/20212《编译原理》冶金工业出版社编译原理——第四章目前语法分析常用的方法有自顶向下分析和自底向上分析两大类。而自底向上分析又可分为算符优先分析和LR分析,各分析方法各有优缺点,但都是当今编译程序构造的实用方法。执行语法分析任务的程序称为语法分析程序,也称为

2、语法分析器,它是编译程序的主要部分之一。7/22/20213《编译原理》冶金工业出版社编译原理——第四章4.1语法分析器的作用语法分析器读取词法分析器提供的符号串,检查它是否能由源语言的文法产生。希望该分析器能以易理解的形式报告任何语法错误,并从错误中恢复过来,使后面的分析能继续进行下去。7/22/20214《编译原理》冶金工业出版社编译原理——第四章语法分析器在编译器中的位置7/22/20215《编译原理》冶金工业出版社编译原理——第四章语法分析器主要作用有两点:(1)根据词法分析器提供的记号流,为语法正确的输入构造分析树(或语法树)。(2)

3、检查输入中的语法(可能包括词法)错误,并调用出错处理器进行适当处理。7/22/20216《编译原理》冶金工业出版社编译原理——第四章4.1.1语法错误的处理程序错误大致包含如下四种,它们分别是:(1)词法错误,如标识符、关键字或算符的拼写错。(2)语法错误,如算术表达式的括号不配对。(3)语义错误,如算符作用于不相容的运算对象。(4)逻辑错误,如无穷的递归调用。7/22/20217《编译原理》冶金工业出版社编译原理——第四章对语法错误的处理,一般希望达到以下基本目标:(1)清楚而准确地报告发现的错误,地点正确、不漏报、不错报也不多报(2)迅速地

4、从每个错误中恢复过来,以便分析继续进行。(3)对语法正确的源程序的分析速度不应降低太多。7/22/20218《编译原理》冶金工业出版社编译原理——第四章4.1.2错误恢复策略以下是一些可能的恢复策略:1.紧急方式恢复(Panic-moderecovery)2.短语级恢复(Phrase-levelrecovery)3.出错产生式(Error-productions)4.全局纠正(Globalcorrection)7/22/20219《编译原理》冶金工业出版社编译原理——第四章4.2上下文无关文法上下文无关文法(ContextFreeGrammar

5、,CFG)是一个四元组G=(N,T,P,S),其中:(1)N是非终结符的有限集合(Nonterminals),非终结符是表示字符串集合的语法变量。(2)T是终结符的有限集合(Terminals),且N∩T=Φ。终结符是组成字符串的基本符号。7/22/202110《编译原理》冶金工业出版社编译原理——第四章(3)P是产生式的有限集合(Productions),每个产生式形如:A→α(有时用::=代替箭头→),其中A∈N,被称为产生式的左部,α∈(N∪T)*,被称为产生式的右部,若α=ε,则称A→ε为空产生式(也可以记为A→)。(4)S是非终结符,

6、被称为文法的开始符号(Startsymbol)。7/22/202111《编译原理》冶金工业出版社编译原理——第四章4.2.1符号的使用约定(1)下列符号是终结符:①字母表前面的小写字母,如a、b、c等。②运算符号,如+、-等。③标点符号,如括号、逗号等。④数字,如0、1、…、9。⑤保留字,如id、if等7/22/202112《编译原理》冶金工业出版社编译原理——第四章4.2.1符号的使用约定(2)下列符号是非终结符:①字母表前面的大写字母,如A、B、C等。②字母S,常代表开始符号。③小写字母的名字,如expr、stmt等。(3)字母表后面的大写

7、字母(如X,Y,Z)代表文法符号,也就是非终结符或终结符。(4)字母表后面的小写字母(主要是u,v,…,z)代表终结符号串。7/22/202113《编译原理》冶金工业出版社编译原理——第四章(5)小写希腊字母(例如、、)代表文法的符号串。(6)如果A->1、A->2、…、A->k是所有以A为左部的产生式(称它们为A产生式)。可以把它们写成A->1

8、2

9、…

10、k,称1、2、…、k是A的候选式。(7)直接用产生式集合代替四元组来描述文法。除非另有说明,否则第一个产生式左部的符号是开始符号。7/22/202114《编译原理》冶金

11、工业出版社编译原理——第四章4.2.2推导推导就是从文法的开始符号S开始,反复使用产生式,将产生式左部的非终结符替换为右部的文法符号序列(展开产生式,

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

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

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