第二章语境语法.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章语境语法

第2章 上下文无关文法;上下文无关文法的应用;上下文无关文法的应用;文法的形式定义;文法的类型;文法的类型;文法的类型;上下文无关文法概述 ;上下文无关文法概述 ;上下文无关文法(例子) ;上下文无关文法的形式化定义;上下文无关文法的推导和派生;上下文无关文法的形式化定义;上下文无关文法举例;上下文无关语言与高级程序语言;上下文无关语言与高级程序语言;上下文无关语言与高级程序语言;形式语言与自然语言;设计上下文无关文法;设计上下文无关文法;基本的语法分析方法;基本的语法分析方法;歧义性概述;歧义性概述;歧义性例子;歧义性的形式化描述;上下文无关歧义文法G2;歧义派生语法树1;歧义派生语法树2;上下文无关文法的化简;无用字符;无用字符算法;无用字符算法;无用字符;空产生式;空产生式(反例);空产生式算法;空产生式(例子);空产生式;单产生式;单产生式的两种情况;单产生式(例子1);单产生式(例子2);单产生式;乔姆斯基范式;乔姆斯基范式;例子2.7;例子2.7;乔姆斯基范式(例子);格雷巴赫范式;格雷巴赫范式;格雷巴赫范式;格雷巴赫范式;下推自动机;PDA结构示意图;PDA基本结构;例子;PDA可以是非确定型的,确定型PDA与非确定型PDA在语言识别能力上不相同,非确定型PDA能识别确定型PDA不能识别的一些语言,这与(非)确定型有穷自动机不相同。 非确定型下PDA等价于上下文无关文法 。;下推自动机M被定义为七元组(Q,?,?,?,q0,Z0,F)(以终止状态接受语言),或者(Q,?,?,?,q0,Z0,?)(以空栈方式接受语言),这里Q,?,?和F都是有穷集 Q是状态集 ?是输入字母表 ?栈字符表 q0?Q是起始状态 F?Q是接受状态(终止状态)集 ?是状态转移函数 Z0是初始栈顶符号 ?:Q???????P(Q???*) ??=?∪{?} ??=?∪{?};δ(q,a,Z)={(p1,r1),(p2,r2),…,(pm,rm)} 表示M在状态q,栈顶符号为Z时,读入字符a,对于i=1,2,…,m,可以选择地将状态变成pi,并将栈顶符号Z弹出,将γi中的符号压入栈,然后将读头向右移动一个带方格而指向输入字符串的下一个字符 ;δ(q,ε,Z)={(p1,r1),(p2,r2),…,(pm,rm)} 表示M进行一次ε-移动(空移动),即M在状态q,栈顶符号为Z时,无论输入符号是什么,对于i=1,2,…,m,可以选择地将状态变成pi,并将栈顶符号Z弹出,将ri中的符号从右到左依次压入栈,读头不移动 ;下推自动机的瞬像是一个三元组(q,w,r),其中q表示当前状态,w表示输入串中待扫描的子串,r表示下推栈中当前的内容(栈字符串) 若(p,β)∈δ(q,a,Z),则有一步瞬像推导(q,aw,Zr)→ (p,w,βr)。若用→*表示下推自动机的若干步推导,则 以空栈方式接受语言的的下推自动机M所接受的语言为 N(M)={w∈?*|(q0,w,Z0)→*(p,ε,ε)} 以终止状态接受语言的的下推自动机M所接受的语言为 N(M)={w∈?*|(q0,w,Z0)→*(p,ε,r),p∈F};一台下推自动机M= (Q,?,?,?,q0,F)的计算过程如下: 它接受输入ω,如果能够把ω写成ω=ω1ω2?ωm,这里ωi∈??,并且存在序列r0,r1,?,rm∈Q和字符串序列s0,s1,?,sm∈?*,满足下面三个条件,字符串si是M在计算的接受分支中的栈内容序列 r0=q0,且s0=ε,表示M从初始状态和空栈开始 对于i=0,1,?,m-1,有(ri+1,b)∈δ(ri,ωi+1,a),其中si=at,si+1=bt,a,b∈?ε,和t∈?* rm∈F;定理1:若语言L被一个以终止状态方式接受语言的PDA M2接受,当且仅当L被一个以空栈方式接受语言的PDA M1接受;一个例子;一个例子 ;例2.9 : L={0n1n|n?0 } 背景: 检查左右括号(0,1)是否配对 PDA 首先把 “$0n” 推入栈. $ 栈底符号,表示后来压入栈的存款用完了 然后,当读到“1n”, 0被弹出. 栈顶对比,左右括号配对,则同归于尽 最后, 如果“$”留在栈顶,则接受;一个记号;PDA状态图描述;q1;q1;问题:设计一个下推自动机接受语言L1={wcwR|w{0,1}*} 解题思路:L1中串是一个回文结构,中间以字母c分界 读取输入串中的0或1,把它推入栈,状态不变 一旦看见字母c之后,进入一个新状态 在新状态下,当输入字母与栈顶符号相同,出栈,状态不变,直到输入结束与栈空同时出现,则接受 如果如果输入字母与栈顶符号不相同,则拒绝;问题:设计一个下推自动机接受语言L1={wcwR|w{0,1}*} 解题:接受L1的下推自动机表

文档评论(0)

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

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

1亿VIP精品文档

相关文档