前言
自动机与形式语言通过规范化的文法,逻辑地表示某些字符串。此外,通过对串的成分进行分析,同时给出一组状态与对应的状态转移,组成自动机。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 V→0
当然也可以递归地进行产生,比如产生的结果中,包含自己:
V → 0 V V \rightarrow 0V V→0V
一个规范化的四元组长这样:
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}, { A→0,A→1A,B→0A,B→1}, B)
通过产生式,推出一个字符串产生的过程,叫做推导。例子如下,给出文法 G,写出句子 aaa 的推导过程
G = ( { A } , { a } , { A → a ∣ a A } , A ) G = (\{A\}, \ \{a\}, \ \{A\rightarrow a \mid aA \}, \ A) G=({ A}, { a}, { A→a∣aA}, 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