自动机与形式语言复习:文法,DFA,NFA与正则表达式,CFG化简

前言

自动机与形式语言通过规范化的文法,逻辑地表示某些字符串。此外,通过对串的成分进行分析,同时给出一组状态与对应的状态转移,组成自动机。DFA 和 NFA 是两种自动机,都能够判断某些串是否能够被接收,走到接收状态就算接收。


还有三天。。。考完就可以 run 了,好耶!

我只考三门,都觉得复习很吃力,但是别人往往考 10 门,还比我先考,还游刃有余。这令我深刻的认识到:我是啥β

原本打算摸了,但是想到不复习真的可能会挂科,就来更新一下复习笔记了。

注:
因为我上了一学期课,从来没有认真听课超过 10 min,作业都是抄别人的
于是这篇复习笔记很可能错漏百出,并且伴有缺内容,缺重点等等问题
⚠ 请谨慎食用 ⚠

文法

通过文法可以规范化的表达某种语言(语言就是串的集合),我们通过四元组来表示一个文法:

G = ( V , T , P , S ) G = ( V, T, P, S ) G=(V,T,P,S)

其中 V 是 variable,表示变量,即状态的集合。

T 是 terminal,终极符,通过一系列的终极符号 T,在不同的变量(V)中进行跳转。比如 V1 可以通过接收字符 T,从而转到 V2 状态。

S 是 start symbol,为文法的开始符号,其中 S 属于状态集合 V

P 为 production,即产生式。产生式告诉我们状态之间的联系,比如一个状态 V 可以产生一个字符 0,那么有:

V → 0 V \rightarrow 0 V0

当然也可以递归地进行产生,比如产生的结果中,包含自己:

V → 0 V V \rightarrow 0V V0V

一个规范化的四元组长这样:

G = ( { A , B } ,   { 0 , 1 } ,   { A → 0 , A → 1 A , B → 0 A , B → 1 } ,   B ) G = (\{A,B\}, \ \{0,1\}, \ \{A\rightarrow0,A\rightarrow1A,B\rightarrow0A,B\rightarrow1\}, \ B) G=({ A,B}, { 0,1}, { A0,A1A,B0A,B1}, B)


通过产生式,推出一个字符串产生的过程,叫做推导。例子如下,给出文法 G,写出句子 aaa 的推导过程

G = ( { A } ,   { a } ,   { A → a ∣ a A } ,   A ) G = (\{A\}, \ \{a\}, \ \{A\rightarrow a \mid aA \}, \ A) G=({ A}, { a}, { AaaA}, A)

推导的过程如下:

A → a A ,   使 用 产 生 式 A → a A a A → a a A ,   使 用 产 生 式 A → a A a a A → a a a ,   使 用 产 生 式 A → a A \rightarrow aA, \ 使用产生式 A\rightarrow aA \\ aA \rightarrow aaA, \ 使用产生式 A\rightarrow aA \\ aaA \rightarrow aaa, \ 使用产生式 A\rightarrow a A

  • 34
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值