- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
lr分析器第四章.ppt
第四章 文法和语言 为语言的语法描述寻求工具 工具要对程序设计语言给出精确无二义的语法描述。(严谨、简洁、易读) 形式工具--“形式”是指这样的事实:语言的所有规则只以什麽符号串能出现的方式来陈述 本章内容 文法和语言的形式定义 文法的类型 上下文无关文法及其语法树 上下文无关文法的句型分析 有关文法实用中的一些说明 文法和语言的形式定义 如何来描述一种语言? 如果语言是有穷的(只含有有穷多个句子),可以将句子逐一列出来表示 如果语言是无穷的,找出语言的有穷表示。语言的有穷表示有两个途经: 生成方式 (文法):语言中的每个句子可以用严格 定义的规则来构造。 识别方式(自动机):用一个过程,当输入的一任意串属于语言时,该过程经有限次计算后就会停止并回答“是”,若不属于,要么能停止并回答“不是”,要么永远继续下去。 文法即是生成方式描述语言的:语言中的每个句子可以用严格定义的规则来构造 文法的定义 推导的概念 句型、句子和语言的定义. 文法定义 文法G定义为四元组(VN,VT,P,S )其中 VN:非终结符号(或语法实体,或变量)集; VT:终结符号集; P: 规则的集合; VN,VT和P是 非空有穷集。 S:称作识别符号或开始符号的一个非终结符,它至少要在一条产生式中作为左部出现。 VN和VT不含公共的元素,即VN ∩ VT = φ 用V表示VN ∪ VT ,称为文法G的字母表或字汇表 规则,也称重写规则、产生式或生成式,是形如?→?或? ∷=?的(? ,?)有序对,其中?是字母表V的正闭包V+中的一个符号,?是V*中的一个符号。 ? 称为规则的左部, ? 称作规则的右部。 文法的定义 例 文法G=(VN,VT,P,S) VN = { S }, VT ={ 0, 1 } P={ S→0S1, S→01 } S为开始符号 例 文法G=(VN,VT,P,S) VN ={标识符,字母,数字} VT ={a,b,c,…x,y,z,0,1,…,9} P={标识符→字母 标识符→标识符字母 标识符→标识符数字 字母→a … 字母→z 数字→0 … 数字→9 } S=标识符 文法的写法 元符号: → ∷= | 习惯 大写字母表示非终结符 小写字母表示终结符 (1) G:S→aAb A→ab A→aAb A→ε (2) G[S]: A→ab A→aAb A→ε S→aSb (3) G[S]:A→ab |aAb |ε S→aSb 推导的定义 直接推导“?” α→β是文法G的产生式,若有v,w满足:v=γαδ,w= γβδ, 其中γ∈V*,δ∈V* 则称v直接推导到w,记作 v ? w 也称w直接归约到v 例:G: S→0S1, S→01 0S1 ?00S11 00S11 ?000S111 000S111 S ?0S1 推导 程序?分程序. (程序 ? 分程序. ) 分程序. ? 变量说明部分 语句. (分程序 ? 变量说明部分 语句) VAR标识符;BEGIN READ(标识符)END. ? VAR A;BEGIN READ(标识符 ) END. (标识符 ?A) VAR A;BEGIN READ(标识符 ) END. ? VAR A;BEGIN READ( A) END. (标识符 ?A) 推导的定义 若存在v =w0 ?w1 ?... ?wn=w,(n0) 则记为v =+ w,称作v推导出w,或w归约到v 若有v =+ w 或 v=w, 则记为v =* w 例:G:
文档评论(0)