编译原理第二章正规式与有穷自动机知识总结

1.正规式:

(a|b...|z)(a|b...|z|1|2...|9|0)*        必须由小写字母开头,组成的数字与字母的串

DFA        状态转换图

2.左线性文法画状态转换图 

在左线性文法中,假设终结符为礼物,如果是A - > a,就是开始符号S送礼物a给A,而A - >Ba,可以理解为B送礼物给A,也可以理解为归约,B获得了a然后能推出A

右线性文法

左线性文法的例子:

ababaaa可以成功的从开始状态走到终止状态,正规文法可以推导出字符串ababaaa

3.五元组定义有穷自动机

D1 = (K,∑,M,S,F) 

        K = {S,A,B,Z}        状态的集合

        ∑ = {a,b}                可接受的输入字符

        M :        M(S,a) = A         M(S,b) = B

                        M(B,a) = Z        M(A,b) = B

                        M(B,a) = A        M(B,b) = Z

                        M(Z,a) = Z

        S = S                     有穷自动机的初态

        F = {Z}                    终态的集合

4.NFA的确定化(NFA - > DFA)

简化子集法(不能出现空串)

状态转换表(矩形表式)

K\∑  0 1
S V,Q Q,U
V Z
Q V Q,U
U Z
Z Z Z

构造等价的DFA(K',∑,M',S',F')

M' :

k'\∑ 0 1
[S] [V,Q] [Q,U]
[V,Q] [Z,V] [Q,U]
[Q,U] [V] [Q,U,Z]
[Z,V] [Z] [Z]
[V] [Z]
[Q,U,Z] [V,Z] [Q,U,Z]
[Z] [Z] [Z]

S' = [S]        F' = { [V,Z] , [Q,U,Z] , [Z] }

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-22 14:30:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-22 14:30:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-22 14:30:01       82 阅读
  4. Python语言-面向对象

    2024-02-22 14:30:01       91 阅读

热门阅读

  1. 游戏物理引擎+特效系统

    2024-02-22 14:30:01       52 阅读
  2. c++用户管理信息(双向链表)

    2024-02-22 14:30:01       41 阅读
  3. ip相关工具类

    2024-02-22 14:30:01       51 阅读
  4. LeetCode 37天 | 738.单调递增的数字 贪心算法总结

    2024-02-22 14:30:01       49 阅读
  5. linux系统消息中间件的介绍

    2024-02-22 14:30:01       46 阅读
  6. Linux中gdb使用说明书

    2024-02-22 14:30:01       32 阅读
  7. 【Spring Boot 3】【JPA】一对一中间表关联

    2024-02-22 14:30:01       63 阅读
  8. 【uni.app】动态赋值字典类数据的问题及解决方案

    2024-02-22 14:30:01       39 阅读
  9. 深度学习如何入门

    2024-02-22 14:30:01       53 阅读