编译原理语法剖析.pptVIP

  1. 1、本文档共114页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理语法剖析

第3章 语法分析;3.1 文法和语言 3.2 推导与语法树 3.3 自上而下分析方法 3.4 自下而上分析方法 3.5 LR分析法 ;3.1 文法和语言;3.1.1 文法和语言的概念 1.语言 通常用Σ表示字母表。 由字母表Σ中字符组成的有穷序列称为Σ上的字符串或字。字母表Σ上的所有字符串(包括空串)组成的集合用Σ*表示。 对于字母表Σ, Σ*上的任一子集称为Σ上的一个语言, 记为L, L?Σ*。语言L的每个字符串称为语言L的一个语句或句子。;2. 文法 终结符是语言不可再分的基本符号,通常为一个语言的字母表。终结符代表了语法的最小元素,是一种个体记号。 非终结符也称语法变量, 它代表语法实体或语法范畴。一个非终结符是一个类、一个集合。 例如, 变量、常量、+、* 等为终结符,而 “算术表达式”为非终结符, 它代表一定算术式组成的类,如i*(i+i)、i+i+i等,即非终结符代表由终结符组成且满足一定规则的符号串的集合。; 文法可表示为四元组G=(VT,VN,S,ξ), 其中 (1) VT为非空终结符集; (2) VN为非空非终结符集,且VT∩VN=Φ; (3) S为文法开始符, S∈VN; (4)ξ是产生式的非空有限集, 其中每个 产生式(规则)记作 ?→? 或 ?::= ? 左部?∈(VT∪VN)+至少含一非终结符, 右部?∈(VT∪VN)*。; 产生式 (也称产生式规则或规则) 是定义语法实体的一种书写规则。一个语法实体的相关规则可能不止一个, 如: P→?1, P→?2 , P→?n 相同左部的产生式可合并为一个: P→ ? 1| ? 2|…| ? n 其中, ? i(i=1,2,…,n)称为P的候选式。;例3.1 试构造产生标识符的文法。 分析: 用L表示字母,D表示数字,T表示字母或数字, 则 L→a∣b∣…∣z D→0∣1∣…∣9 T→L∣D 用S表示字母数字串,则ST是字母数字串,即 S→T | ST 标识符I或为单个字母, 或为一字母后 跟字母数字串, 即 I→L∣LS;解: 产生标识符的文法G[I]为: G=({a,b,…,z,0,…,9},{I,S,T,L,D},I,ξ) 其中,ξ: I→L∣LS S→T∣ST T→L∣D L→a∣b∣…∣z D→0∣1∣…∣9;例3.2 写一文法, 使其语言是奇数集, 但不允 许出现以0打头的奇数。 解: 将奇数划分为三个部分: 最高位允许出现1~9,用非终结符B表示; 中间部分可出现任意多位数字0~9, 每一位用非终结符D表示; 最低位只出现1,3,5,7,9, 用A表示。 由于中间部分可任意位,故需另引入一 非终结符M,它包括最高位和中间部分。;M;解: 奇数集文法G[N]为: G=({0,1,…,9},{N,A,M,B,D},N,ξ) ξ: N→A | MA M→B | MD A→1 | 3 | 5 | 7 | 9 B→1|2|3|4|5|6|7|8|9 D→0 | B;3. 文法产生的语言 设G=(VT,VN,S,ξ)且?,? ∈(VT∪VN)*, 若存在产生式A→δ, δ∈(VT∪VN)*, 则称?A?可直接推出?δ?, 记为 ?A? ? ?δ? 注意?与→的不同: →是产生式中的定义记号, ?表示直接推导,是对文法符号串?A? 中A用产生式A→δ的右部δ替换。;关于推导的两点说明: (1)若?1可直接推出

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档