第二章上下文无关文法.ppt

  1. 1、本文档共118页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 上下文无关文法 研究内容 上下文无关文法概述 下推自动机 非上下文无关语言 上下文无关文法的应用 上下文无关文法的重要性如下 表达能力强大足于表示大多数程序设计语言语法 可以构造有效的分析算法以检验一个给定的字符串是否由某个上下文无关文法产生 上下文无关语言在实践中的重要意义 定义程序设计语言:例如BNF范式 描述文档格式:例如XML,HTML 使语法分析概念形式化 简化程序设计语言的翻译:例如设计语法分析器 上下文无关文法的应用 语法分析程序 语法分析程序生成器 超文本标记语言 可扩展标记语言 文法的形式定义 文法G是一个四元组:G=(VN, VT, P, Z ),其中: VN是非终结符的有穷集合,也称为语法单元、语法成分或语法范畴,可分解为若干非终结符或终结符 VT是终结符的有穷集合,是基本符号,不能再分解 V=VN∪VT称为字汇表(字母表),VN∩VT=Ф。 Z是开始符,Z∈VN,P是规则式(产生式)有穷集合 规则式形如:x→y,其中x∈V*VNV*, 称为规则式的左部;y∈V*称为右部。 文法的类型 Chomsky将文法分为四种类型: 0型文法(短语结构文法,可压缩的上下文有关文法),最一般的文法,对规则无限制 u→w u∈V*VNV* w∈V*(可为ε) 相应的自动机是图灵机 1型文法(上下文有关文法,不可压缩的上下文有关文法),对规则有些限制 xuy→xwy  x和y就是上下文,x,y∈V*,u∈V*∪VN, w∈V+(不可为ε),这些限制也可以写成: u→w  |u|≤|w| 意为串的长度不可压缩 相应的自动机是线性界限自动机 文法的类型 2型文法(上下文无关文法,简单短语结构文法),对规则的限制 A→w A∈VN w∈V*(可为ε) 2型文法与字典定义形式相近(一个字用另一些字定义),与人们习惯一致。 相应的自动机是下推自动机,与BNF等价。左部均为非终结符 文法的类型 3型文法(正规文法,正则文法),规则是线性的,其中 左线性:A→Ba  A→a 右线性:A→aB A→a A,B∈VN, a∈VT 相应的自动机是有限自动机。在程序设计语言中,单词符号用3型文法定义。 上下文无关文法概述 上下文无关文法是把变量转化为原语符号串的一组规则,即变量?变量或原语符号组成的串 上下文无关文法最早被用来描述自然语言的一些规则,在计算机语言学中,Backus范式可以用来表示一种程序设计语言的各种规定,例如字符集、标识字符集、标识符以及各种语句的格式等 上下文无关文法概述 文法G=(V,? ,R,S)被称为是上下文无关文法或2型文法。 如果对于?α?β∈R,均有|β|≥|α|,并且α∈V成立。 关键:对于?A∈V,如果A?β∈P,则无论A出现在句型的任何位置,我们都可以将A替换成β,而不考虑A的上下文。 L(G)叫做2型语言(type 2 language)或者上下文无关语言(context free language, CFL)。 上下文无关文法(例子) 构造上下文无关文法G,它所产生的语言为字母表{0,1}上所有回文全体,即L(G)={w∈{0,1}*|w=wR} G=({S},{0,1};R,S),其中R:S??|1|0;S?OSO|1S1 分别构造如下三个语言的上下文无关文法 L1={anbn|n≥1};L2={anbncmdm|n,m≥1} L3={anbmcmdn|n,m≥1} G1=({S},{a,b};R1,S),其中R1:S?aSb|ab G2=({S,A,B},{a,b,c,d};R2,S),其中 R2:S?AB,A→aAb|ab,B?cBd|cd G2=({S,A},{a,b,c,d};R3,S),其中 R2:S?aSd|aAd,A→bAc|bc 上下文无关文法的形式化定义 定义2.1 上下文无关文法是一个4元组G=(V,?,R,S) V: 一个有穷集,称为变元集 ?: 一个有穷集,称为终结符集,(V??=?) R: 有穷规则集,V?(V??)* S?V: 起始变元 文法G的语言可以表示为 L(G)={w??*|S?*w} 规则左边是单个变元符号,右边的所有符号属于集合V∪? 上下文无关文法的推导和派生 上下文无关文法的形式化定义 上下文无关文法举例 上下文无关语言与高级程序语言 上下文无关语言与高级程序语言 上下文无关语言与高级程序语言 形式语言与自然语言 设计上下文无关文法 设计上下文无关文法 基本的语法分析方法 基本的语法分析方法 歧义性概述 歧义性概述 歧义性例子 歧义性的形式化描述 上下文无关歧义文法G2 歧义派生语法树1 歧义派生语法树2 上下文无关文法的化简 无用字符 无用字符算法 无用字符算法 无用字符 空产生式 A→ε型的产生式称为空产生式。对于

文档评论(0)

ranfand + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档