9、DFA最小化,语法分析初步

1.将DFA最小化:教材P65 第9题

2.构造以下文法相应的最小的DFA

S→ 0A|1B

A→ 1S|1

B→0S|0

3.给定如下文法 G[S]:

S AB

A aA | ?

B b | bB

给出句子aaab 的一个自顶向下语法分析过程,并说明回溯产生的原因是什么?

4.P100 练习4,反复提取公共左因子,对文法进行改写。

S→C$

C→bA|aB

A→a|aC|bAA

B→b|bC|aBB

--------------------------------------------------------------------------------------------------------------

1.将图的DFA最小化,并用正规式描述它所识别的语言:

解:


1

{1,2,3,4,5} {6,7}
 
{1,2}b →{1,2,3,4,5}

{3,4}b→{6,7}

{5}b


{6,7}

{6}b →{6,7}

{7}b →{6,7}

  {1,2},{3,4},{5} {6,7}

2.构造以下文法相应的最小的DFA

解:

S→ 0A|1B

A→ 1S|1

B→0S|0

S->0A|1B

S->0(1S|1)|1(0S|0)

S->01S|01|10S|10

S->(01|10)S|(01|10)

S->(01|10)*(01|10)

DFA:

    0 1
A {X}={X14} {25} {36}
B {25}  —— {14Y}
C {36} {14Y}  ——
D {14Y} {25} {36}

3.给定如下文法 G[S]:

AB

→ aA | ?

→ b | bB

给出句子aaab 的一个自顶向下语法分析过程,并说明回溯产生的原因是什么?

  S→AB

   →aAB

    →aaAB

    →aaaAB

    →aaaεB

    →aaab

回溯产生原因是该文法产生式有公共左因子。

4.P100 练习4,反复提取公共左因子。

S→C$

C→bA|aB

A→a|aC|bAA

B→b|bC|aBB

S → C$

C → bA | aB

A → aC‘ | bAA

B → bC‘ | aBB

C‘ → ? | C

原文地址:https://www.cnblogs.com/dyun3/p/11822879.html

时间: 2024-08-29 12:49:14

9、DFA最小化,语法分析初步的相关文章

DFA最小化,语法分析初步

1.将DFA最小化:教材P65 第9题 L(M) = ac*(da)*bb* 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 正规式 : S→0A | 1B = 0 ( S1 + 1 )  + 1(S0 + 0)= 01S + 01 + 10S + 10 =  (01 + 10)S + (01 + 10) →aS |a   即a =(01 + 10) .而该形式产生 a*a  ,  既有 Z = (01 +10)*(01 + 10). 自动机: 确定性自动机:

实验九——DFA最小化,语法分析初步

1.将DFA最小化:教材P65 第9题 ① {1,2,3,4,5} {6,7} {1,2,}b{2} {3,4}b{6,7} {5}b {6,7}b{6,7} ② {1,2,},{3,4},{5} {6,7} 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 3.给定如下文法 G[S]: S →AB A → aA | ? B → b | bB 给出句子aaab 的一个自顶向下语法分析过程,并说明回溯产生的原因是什么? 文法的产生式有问题 4.P100 练习4,反

09 DFA最小化,语法分析初步 11/06

1.将DFA最小化:教材P65 第9题   2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 3.给定如下文法 G[S]: S →AB A → aA | ? B → b | bB 给出句子aaab 的一个自顶向下语法分析过程,并说明回溯产生的原因是什么? S -> ABS -> aABS -> aaABS -> aaaABS -> aaa?bS -> aaab 原因:反复提取公共左因子 4.P100 练习4,反复提取公共左因子. S -

DFA最小化

1.将DFA最小化:教材P65 第9题 DFA最小化的图如下 用正规式描述其所识别的语言: a(c*|{da}*)bb* 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 S→ 0A|1B→S→ 0(1S|1)|1(0S|0)→01S | 01 | 10S | 10 →(01 | 10)S | (01 | 10)→(01 | 10)*(01 | 10) DFA最小化的图如下 3.自上而下语法分析,回溯产生的原因是什么? 原因:文法的产生式有问题 4.P100 练

DFA最小化实例

原始DFA如下图所示 最小化的定义:1.没有多余的状态(死状态):2.没有两个状态是相互等价的: 两个状态等价的含义:1.兼容性(一致性)--同是终态或同是非终态:2.传播性(蔓延性)--从s出发读入某个a和从t出发经过某个a并且经过某个b到达的状态等价. 令M为DFA中所有状态的集合.1.开始做粗略划分,将状态集M的状态划分为,k1 = {C, D, E, F} k2 = {S, A, B}2.考察k1是否可分,由下面的转换关系k2可以分为{S, B}和{A}.A -> a -> k1 S

DFA最小化 -- Hopcroft算法 Python实现

问了 30 个技术群,也问了无数的前辈,真是各种不礼貌,吃了无数闭门羹,还是自己看着有点眉目了 还有 wiki 的伪代码看了总觉得奇怪,于是看了同一页面其他语言翻译过来的伪代码, 发现葡萄牙语和俄罗斯语那里的 if 判断都还缺少一个条件 国内的资料比较少,这几份学习资料不错,比我稀里糊涂的思路要好,分享下: http://www.liafa.univ-paris-diderot.fr/~carton/Enseignement/Complexite/ ENS/Redaction/2008-2009

实现一个 DFA 正则表达式引擎 - 4. DFA 的最小化

(正则引擎已完成,Github) 最小化 DFA 是引擎中另外一个略繁琐的点(第一个是构建语法树). 基本思路是,先对 DFA 进行重命名,然后引入一个拒绝态 0,定义所有状态经过非接受字符转到状态 0,0 接受所有字符转换为自身.也就是说我们先建立一个转换表,然后把第一行填写为: state a b c d e f g h ... 0 0 0 0 0 0 0 0 0 0 再之后,我们讲 DFA 的其余状态从 1 开始重命名,填入状态表.代码实现如下: // rename all states

正规式->最小化DFA说明

  整体的步骤是三步: 一,先把正规式转换为NFA(非确定有穷自动机), 二,在把NFA通过"子集构造法"转化为DFA, 三,在把DFA通过"分割法"进行最小化. 一步很简单,就是反复运用下图的规则,图1 这样就能转换到NFA了. 给出一个例题,来自Google book.本文主要根据这个例题来讲,图2 二.子集构造法. 同样的例题,把转换好的NFA确定化,图3 这个表是从NFA到DFA的时候必须要用到的.第一列第一行I的意思是从NFA的起始节点经过任意个ε所能到达

实现iOS图片等资源文件的热更新化(四): 一个最小化的补丁更新逻辑

简介 以前写过一个补丁更新的文章,此处会做一个更精简的最小化实现,以便于集成.为了使逻辑具有通用性,将剥离对AFNetworking和ReativeCocoa的依赖.原来的文章,可以先看这里: http://www.ios122.com/2015/12/jspatconline/ 这么做的意义 先交代动机和意义,或许应该成为自己博客的一个标准框架内容之一,不然以后自己需要看着,也不过是一堆干瘪的代码.基本的逻辑图,如上!此处,我就从简! 从简的原因有3: 补丁更新,状态可以设计的很复杂,就像开头