有穷自动机(NFA、DFA)&正规文法&正规式之间的相互转化构造方法

在编译原理(第三版清华大学出版社出版)中第三章的词法分析中,3.4、3.5、3.6小节中分别讲解了

1、什么是NFA(不确定的有穷自动机)和DFA(确定的有穷自动机)

2、如何将  不确定的有穷自动机(NFA)  转化为  确定的有穷自动机(DFA);

3、如何化简DFA;

4、正规式和有穷自动机的等价性(根据给出的正规式构造有穷自动机);

5、正规文法和有穷自动机的等价性(根据给出的正规式构建有穷自动机);

个人在开始学习这一章节的时候,课上听得有些迷惑,并且看书也是感觉没有头绪,后来花了一些精力捋清思路之后,觉得这一章节并不是很难,只是书在通过文字表述这些思想方法的时候十分严谨,也就让人初看起来有些迷糊。并且在网上寻找资料的时候总是一块一块的孤立知识点,又让我花了一些时间来理清这些思绪。导致做习题一度陷入僵局,现在在这里吧学习笔记记录下来。为了让以后自己复习能够快速捡起来,如果同时能够帮到和我一样,在这一章节遇到难的朋友,那就更好不过了。

点击上面列出来的小节,可以点进到相应的章节查看详情。

原文地址:https://www.cnblogs.com/AndyEvans/p/9992054.html

时间: 2024-10-12 23:11:55

有穷自动机(NFA、DFA)&正规文法&正规式之间的相互转化构造方法的相关文章

正规文法正规式 有穷自动机

1.正规式转换到正规文法 对任意正规式R选择一个非终结符Z生成规则Z→R 1.对形如A→ab的规则,转换成A→aB,B→b 2.将形如A→a|b的规则,转换成A→a,A→b(A→a|b) 3.将形如A→a*b的规则,转换成A→aA,A→b 将形如A→ba*的规则,转换成A→Aa,A→b 不断利用上述规则进行转换,直到每条规则最多含有一个终结符为止. 1(0|1)*101 S->A1 A->B0 B->C1 C->1(0|1)* ->1|C0|C1 (a|b)*(aa|bb)(

编译原理——正规式转DFA算法概述

一.概念概述 给定一个单词,判断该单词是否满足我们给定的单词描述规则,需要用到编译原理中词法分析的相关知识,其中涉及到的两个很重要的概念就是正规式(Regular Expression)和有穷自动机(Finite Automata).正规式是描述单词规则的工具,首先要明确的一点是所有单词组成的是一个无穷的集合,而正规式正是描述这种无穷集合的一个工具:有穷自动机则是识别正规式的一个有效的工具,它分为确定的有穷自动机(Deterministic Finite Automata,DFA)和不确定的有穷

正规式->最小化DFA说明

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

正规式到正规文法与自动机

1.正规式转换到正规文法 对任意正规式R选择一个非终结符Z生成规则Z→R 1.对形如A→ab的规则,转换成A→aB,B→b 2.将形如A→a|b的规则,转换成A→a,A→b(A→a|b) 3.将形如A→a*b的规则,转换成A→aA,A→b 将形如A→ba*的规则,转换成A→Aa,A→b 不断利用上述规则进行转换,直到每条规则最多含有一个终结符为止. 1(0|1)*101 (a|b)*(aa|bb)(a|b)* ((0|1)*|(11))* (0|11*0)* 2. 自动机M=({q0,q1,q2

正规式、正规文法与自动机

1.正规式转换到正规文法 对任意正规式R选择一个非终结符Z生成规则Z→R 1.对形如A→ab的规则,转换成A→aB,B→b 2.将形如A→a|b的规则,转换成A→a,A→b(A→a|b) 3.将形如A→a*b的规则,转换成A→aA,A→b 将形如A→ba*的规则,转换成A→Aa,A→b 不断利用上述规则进行转换,直到每条规则最多含有一个终结符为止. 1(0|1)*101 Z → A1 A → B0 B → C1 C → (0 | 1)C | ε C → 0C | 1C | ε (a|b)*(aa

10.23正规式、正规文法与自动机

1.正规式转换到正规文法 对任意正规式R选择一个非终结符Z生成规则Z→R 1.对形如A→ab的规则,转换成A→aB,B→b 2.将形如A→a|b的规则,转换成A→a,A→b(A→a|b) 3.将形如A→a*b的规则,转换成A→aA,A→b 将形如A→ba*的规则,转换成A→Aa,A→b 不断利用上述规则进行转换,直到每条规则最多含有一个终结符为止. (1)1(0|1)*101 (2)(a|b)*(aa|bb)(a|b)* (3)((0|1)*|(11))* (4)(0|110)  答: (1)S

第七次-正规式到正规文法与自动机

1.正规式转换到正规文法 对任意正规式R选择一个非终结符Z生成规则Z→R 1.对形如A→ab的规则,转换成A→aB,B→b 2.将形如A→a|b的规则,转换成A→a,A→b(A→a|b) 3.将形如A→a*b的规则,转换成A→aA,A→b 将形如A→ba*的规则,转换成A→Aa,A→b 不断利用上述规则进行转换,直到每条规则最多含有一个终结符为止. 1(0|1)*101 (a|b)*(aa|bb)(a|b)* ((0|1)*|(11))* (0|110) 2. 自动机M=({q0,q1,q2,q

编译原理:正规式、正规文法与自动机

1.正规式转换到正规文法 对任意正规式R选择一个非终结符Z生成规则Z→R 1.对形如A→ab的规则,转换成A→aB,B→b 2.将形如A→a|b的规则,转换成A→a,A→b(A→a|b) 3.将形如A→a*b的规则,转换成A→aA,A→b 将形如A→ba*的规则,转换成A→Aa,A→b 不断利用上述规则进行转换,直到每条规则最多含有一个终结符为止. 1(0|1)*101 解析: S-> A1 A-> B0 B-> C1 C-> 1(0|1)* -> 1|C0|C1 (a|b)

第七次:正规式、正规文法与自动机

1.正规式转换到正规文法 对任意正规式R选择一个非终结符Z生成规则Z→R 1.对形如A→ab的规则,转换成A→aB,B→b 2.将形如A→a|b的规则,转换成A→a,A→b(A→a|b) 3.将形如A→a*b的规则,转换成A→aA,A→b 将形如A→ba*的规则,转换成A→Aa,A→b 不断利用上述规则进行转换,直到每条规则最多含有一个终结符为止. (1)   1(0|1)*101 得: S->A1    A->B0  B->C1 C->1(0|1)*->1|C0|C1 (2