Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【计算理论】计算理论总结 ( 上下文无关文法 ) ★★

【计算理论】计算理论总结 ( 上下文无关文法 ) ★★

作者头像
韩曙亮
发布于 2023-03-28 12:11:36
发布于 2023-03-28 12:11:36
8220
举报

文章目录

参考博客 :

一、上下文无关文法 ( CFG )


上下文无关语法 组成 :

\{ \quad V , \Sigma , R , S \quad \}

四部分组成 ;

变量集

V

: 有限的变量集合 ;

终端字符集

\Sigma

: 有限的终端字符组成的集合 ; 相当于常量的含义 , 与变量相对 ;

规则集

R

: 有限的规则组成的集合 , 规则规定如何进行代换操作 , 规定 变量 , 终端字符 , 字符串变量 等 ;

开始变量

S

: 该变量作为开始变量 ;

规则 :

① 已知条件 : 假设

u, v , w

变量 ( 变元 )终端字符集 ( 常量 / 常元 ) ;

② 规则描述 : 规则是一个箭头 ,

A \to w

,

A

是变元 ,

w

是 变元 和 常元 组成的终端字符 ;

③ 规则用法 : 在字符串中 , 根据

A \to w

规则进行替换 , 只需要将

A

变元替换成

w

字符串即可 ;

④ 规则示例 :

uAv

中使用上述规则进行替换 , 将

A

替换成

w

, 替换结果是得到新字符串

uwv

;

uAv \Rightarrow uwv

二、上下文无关文法 ( CFG ) 示例


上下文无关文法 ( CFG ) :

\rm G3 =( \; \{ S \}, \{ a, b \}, R , S \; )

其组成如下 :

  • 变量集
\rm \{ S \}

;

  • 终端字符集
\rm \{ a, b \}

;

  • 规则
\rm R

;

  • 开始变量
\rm S

;

规则

\rm R

描述 :

\rm S \to aSb \; | \; SS \; | \; \varepsilon
\rm S

变量 可以使用

\rm aSb

字符串替换 ;

\rm S

变量 可以使用

\rm SS

字符串替换 ;

\rm S

变量 可以使用

\rm \varepsilon

字符串替换 ;

规则替换过程 : 下面的 ① ~ ⑦ 分别对应七次规则替换 ;

\rm S \Rightarrow aSb \Rightarrow aaSbb \Rightarrow aaSSbb \Rightarrow aaaSbSbb \Rightarrow aaabSbb \Rightarrow aaabaSbbb \Rightarrow aaababbb
\rm S S

是开始变量 , 可以使用

\rm aSb

替换

\rm S

;

\rm S \Rightarrow aSb
  • ② 使用
\rm aSb

替换

\rm S

;

\rm aSb \Rightarrow aaSbb
  • ③ 使用
\rm SS

替换

\rm S

;

\rm aaSbb \Rightarrow aaSSbb
  • ④ 使用
\rm aSb

替换第一个

\rm S

;

\rm aaSSbb \Rightarrow aaaSbSbb
  • ⑤ 使用
\rm \varepsilon

替换第一个

\rm S

;

\rm aaaSbSbb \Rightarrow aaabSbb
  • ⑥ 使用
\rm aSb

替换

\rm S

;

\rm aaabSbb \Rightarrow aaabaSbbb
  • ⑦ 使用
\rm \varepsilon

替换

\rm S

;

\rm aaabaSbbb \Rightarrow aaababbb

三、确定性有限自动机 DFA 转为 上下文无关语法 CFG


1 . 确定性有限自动机 ( DFA ) 转为 上下文无关语法 ( CFG ) :

确定性有限自动机 ( DFA ) 的指令 , 转为 对应的

上下文无关语法 ( CFG ) 规则 :

\rm \delta ( q_i, a ) = q_j \Rightarrow R_i \to aR_j
\delta ( q_i, a ) = q_j

表示

q_i

状态下 , 读取字符

a

, 跳转到

q_j

状态 ;

2 . 自动机的 状态跳转 转换成 规则 示例 : 下图中的 确定性有限自动机 , 开始状态

A

读取

1

字符 转化成

B

状态 , 表示成规则就是

R_A \to 1R_B

3 . 自动机的状态

A

读取 字符

a

转换成另一个状态

B

, 都可以转换成对应的规则

R_A \to aR_B

;

4 . 计算能力对比 : 上下文无关语法 的计算能力 要大于等于 自动机的计算能力 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-12-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【计算理论】上下文无关语法 ( 代数表达式 | 代数表达式示例 | 确定性有限自动机 DFA 转为 上下文无关语法 )
此时可以得到语法分析树 ; 该语法分析树是一个代数表达式 ; 将该语法分析树写出 , 即可理解 上下文无关 语法 ;
韩曙亮
2023/03/27
4740
【计算理论】上下文无关语法 ( 代数表达式 | 代数表达式示例 | 确定性有限自动机 DFA 转为 上下文无关语法 )
【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 1 ) ★★
状态的指令都是从本状态指向本状态 , 生成两种指令 , 一种是基本指令 , 一种是终端字符指令 ;
韩曙亮
2023/03/28
9450
【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 1 ) ★★
【计算理论】计算理论总结 ( 下推自动机计算过程 | 上下文无关文法 CFG 转为下推自动机 PDA ) ★★
1 . 下推自动机 ( PDA ) 提升了自动机计算能力 : 在上述自动机的基础上 , 提升该自动机的计算能力 , 引入一个新的栈结构 ;
韩曙亮
2023/03/28
8620
【计算理论】计算理论总结 ( 上下文无关文法 | 乔姆斯基范式 | 乔姆斯基范式转化步骤 | 示例 ) ★★
② 语言不包含空字符串 : 如果上下文无关语法不包含空字符串时 , 一定 不需要
韩曙亮
2023/03/28
1K0
【计算理论】上下文无关语法 ( 语法组成 | 规则 | 语法 | 语法示例 | 约定的简写形式 | 语法分析树 )
: 有限的规则组成的集合 , 规则规定如何进行代换操作 , 规定 变量 , 终端字符 , 字符串变量 等 ;
韩曙亮
2023/03/27
2.1K0
【计算理论】上下文无关语法 ( 语法组成 | 规则 | 语法 | 语法示例 | 约定的简写形式 | 语法分析树 )
【计算理论】上下文无关语法 CFG ( CFG 设计示例 | CFG 歧义性 | Chomsky 范式 | 上下文无关语法 转为 Chomsky 范式 )
2 . 设计方法 : 非确定性优先自动机 ( NFA ) 识别某语言 , 将 NFA 转为 确定性优先自动机 ( DFA ) , 然后将 DFA 转为 上下文无关语法 ;
韩曙亮
2023/03/27
1.3K0
【计算理论】上下文无关语法 CFG ( CFG 设计示例 | CFG 歧义性 | Chomsky 范式 | 上下文无关语法 转为 Chomsky 范式 )
【计算理论】正则语言 ( 推广型的非确定性有限自动机 GNFA | 删除状态 | 确定性有限自动机 转为 正则表达式 )
2 . 引入 推广型的非确定性有限自动机 ( GNFA ) : 首先要构造一个推广的一般型的非确定性有限自动机 , 每次消除一个状态 , 最后只剩下两个状态 , 此时箭头上的正则表达式就是最终的正则表达式 ;
韩曙亮
2023/03/27
1.2K0
【计算理论】正则语言 ( 推广型的非确定性有限自动机 GNFA | 删除状态 | 确定性有限自动机 转为 正则表达式 )
【计算理论】下推自动机 PDA ( 上下文无关语言 CFL 的 泵引理 | 泵引理反证示例 | 自动机扩展 )
通过 上下文无关语言 ( CFL ) 的 Pumping Lemma ( 泵引理 ) 可以证明上述命题 ;
韩曙亮
2023/03/27
9240
【计算理论】上下文无关语法 ( CFG ) 转为 下推自动机 ( PDA )
最终的 上下文无关语法 ( CFG ) 转为的 下推自动机 ( PDA ) 样式 :
韩曙亮
2023/03/27
7860
【计算理论】上下文无关语法 ( CFG ) 转为 下推自动机 ( PDA )
计算理论-有限自动机(FA)
有限自动机是一种数学模型,用于表示和分析有限状态的计算过程。它包括确定性有限自动机(DFA)和非确定性有限自动机(NFA),广泛应用于语言识别和编译技术等领域。
姓王者
2024/10/31
2300
计算理论-有限自动机(FA)
【计算理论】计算理论总结 ( 非确定性有限自动机 NFA 转为确定性有限自动机 DFA ) ★★
确定性有限自动机 ( DFA ) 与 非确定性有限自动机 ( NFA ) 之间是相互等价的 ;
韩曙亮
2023/03/28
1.4K0
【计算理论】计算理论总结 ( 非确定性有限自动机 NFA 转为确定性有限自动机 DFA ) ★★
【计算理论】下推自动机 PDA ( 设计下推自动机 | 上下文无关语法 CFG 等价于 下推自动机 PDA )
开始状态是接受状态 , 因为如果字符串是空字符串 , 空字符串的镜面反射还是空字符串 , 因此读取空字符串后的状态 , 是接受状态 , 开始状态其本身就是接受状态 ;
韩曙亮
2023/03/27
6060
【计算理论】下推自动机 PDA ( 设计下推自动机 | 上下文无关语法 CFG 等价于 下推自动机 PDA  )
【计算理论】计算理论总结 ( 非确定性有限自动机 NFA 转为确定性有限自动机 DFA | 示例 ) ★★
, 上述分别是 NFA 下两个状态读取字符的后继状态取并集 ; 将新状态写到表格中 , 然后分析新状态 ;
韩曙亮
2023/03/28
6670
【计算理论】计算理论总结 ( 非确定性有限自动机 NFA 转为确定性有限自动机 DFA | 示例 ) ★★
编译原理:第三章 词法分析
从左至右逐个字符地对源程序进行扫描,产生 一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序或者说:逐个读入源程序字符,并按照词法规则分割成一系列单词,再转换成单词串,同时进行词法检查。
Here_SDUT
2022/08/09
4.6K0
编译原理:第三章 词法分析
【计算理论】下推自动机 PDA 及 计算示例
1 . 下推自动机 由来 : 下推自动机 ( PDA ) 是在 确定性有限自动机 ( DFA ) 基础上 扩展而来的 ;
韩曙亮
2023/03/27
1.1K0
【计算理论】下推自动机 PDA 及 计算示例
【计算理论】计算理论总结 ( 正则表达式转为非确定性有限自动机 NFA ) ★★
根据下面的 正则表达式 构造 非确定性有限自动机 ( NFA ) , 刚好能 识别上述正则表达式表示的语言 ;
韩曙亮
2023/03/28
5560
【计算理论】计算理论总结 ( 正则表达式转为非确定性有限自动机 NFA ) ★★
【计算理论】正则语言 ( 正则语言运算 | 正则语言封闭性 )
1 . 非确定性有限自动机 作用 : 非确定性有限自动机并没有增加 自动机 的计算能力 , 但是给自动机设计带来很多方便 ; 仅限于在理论计算时带来很多方便 , 但是无法实现 ;
韩曙亮
2023/03/27
3.3K0
【计算理论】正则语言 ( 正则语言运算 | 正则语言封闭性 )
【计算理论】可判定性 ( 可判定性总结 )
② 下推自动机 ( PDA ) 所 认识的语言是否是空集问题 , 是可判定的 ,
韩曙亮
2023/03/28
1.2K0
【愚公系列】软考中级-软件设计师 013-程序设计语言基础知识(语言处理程序基础)
语言处理程序基础是指语言处理程序设计与实现的基本原理和技术方法。它包括了以下几个关键方面:
愚公搬代码
2024/01/25
3741
【计算理论】非确定性有限自动机 ( 计算过程 | 计算树 | 确定可接受字符串 | 设计非确定性有限自动机 | 空字符 )
对比 : 确定性自动机计算的时候 , 得到的结果是 链 , 非确定性自动机计算 , 得到的结果是 树 ;
韩曙亮
2023/03/27
7100
【计算理论】非确定性有限自动机 ( 计算过程 | 计算树 | 确定可接受字符串 | 设计非确定性有限自动机 | 空字符 )
推荐阅读
【计算理论】上下文无关语法 ( 代数表达式 | 代数表达式示例 | 确定性有限自动机 DFA 转为 上下文无关语法 )
4740
【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 1 ) ★★
9450
【计算理论】计算理论总结 ( 下推自动机计算过程 | 上下文无关文法 CFG 转为下推自动机 PDA ) ★★
8620
【计算理论】计算理论总结 ( 上下文无关文法 | 乔姆斯基范式 | 乔姆斯基范式转化步骤 | 示例 ) ★★
1K0
【计算理论】上下文无关语法 ( 语法组成 | 规则 | 语法 | 语法示例 | 约定的简写形式 | 语法分析树 )
2.1K0
【计算理论】上下文无关语法 CFG ( CFG 设计示例 | CFG 歧义性 | Chomsky 范式 | 上下文无关语法 转为 Chomsky 范式 )
1.3K0
【计算理论】正则语言 ( 推广型的非确定性有限自动机 GNFA | 删除状态 | 确定性有限自动机 转为 正则表达式 )
1.2K0
【计算理论】下推自动机 PDA ( 上下文无关语言 CFL 的 泵引理 | 泵引理反证示例 | 自动机扩展 )
9240
【计算理论】上下文无关语法 ( CFG ) 转为 下推自动机 ( PDA )
7860
计算理论-有限自动机(FA)
2300
【计算理论】计算理论总结 ( 非确定性有限自动机 NFA 转为确定性有限自动机 DFA ) ★★
1.4K0
【计算理论】下推自动机 PDA ( 设计下推自动机 | 上下文无关语法 CFG 等价于 下推自动机 PDA )
6060
【计算理论】计算理论总结 ( 非确定性有限自动机 NFA 转为确定性有限自动机 DFA | 示例 ) ★★
6670
编译原理:第三章 词法分析
4.6K0
【计算理论】下推自动机 PDA 及 计算示例
1.1K0
【计算理论】计算理论总结 ( 正则表达式转为非确定性有限自动机 NFA ) ★★
5560
【计算理论】正则语言 ( 正则语言运算 | 正则语言封闭性 )
3.3K0
【计算理论】可判定性 ( 可判定性总结 )
1.2K0
【愚公系列】软考中级-软件设计师 013-程序设计语言基础知识(语言处理程序基础)
3741
【计算理论】非确定性有限自动机 ( 计算过程 | 计算树 | 确定可接受字符串 | 设计非确定性有限自动机 | 空字符 )
7100
相关推荐
【计算理论】上下文无关语法 ( 代数表达式 | 代数表达式示例 | 确定性有限自动机 DFA 转为 上下文无关语法 )
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档