文法 Grammar
文法是形式化的语言规则, 因此文法是用于生成语言,而语言依托于词,或者说语言是词的组织,因此一个文法所能产生的语言依赖于词的集合,词
的拼接组成了句
,句
构成了语言,因此可以认为,词是句的子集,句是语言的子集,有些词
或者句
在一些条件(或无条件下)能被进一步替换,而描述这些替换规则的式子就称为产生式 production
,因此给出文法G
的定义
G = ( V , T , S , P ) G=(V,T,S,P) G=(V,T,S,P)
其中V
表示一个文法所使用的词
的集合
T
表示不能被进一步替换的词的集合,称为终结符 terminator
S
表示生成一个语言的初始词
P
表示产生式 production
的集合,表示词
或句
的替换规则
并且一个文法G
所能生成的语言L(G)
L ( G ) ⊂ V ∗ , ∗ 是 K l e e n e 闭 包 , 即 字 符 拼 接 运 算 其 中 V 0 = { λ } V i 表 示 进 行 i 次 拼 接 , 每 次 选 取 V 中 的 一 个 元 素 L(G)\subset V^*, *\ 是\ Kleene闭包,即字符拼接运算\\ 其中\ V^0=\{\lambda\}\\ V^i表示进行i次拼接,每次选取V中的一个元素 L(G)⊂V∗,∗ 是 Kleene闭包,即字符拼接运算其中 V0={
λ}Vi表示进行i次拼接,每次选取V中的一个元素
当我们在讨论文法 Grammar
的时候,我们考虑的是语言的合法性,此时我们不关心语言的语义
,即我们在做语法分析
我们提到词
或句
在一些条件下能被进一步替换,乔姆斯基将文法依据特定的条件分为四类
文法类型 | 名称 | 对应的有限状态机 |
---|---|---|
0 | 无约束条件文法 | 图灵机 |
1 | 上下文有关文法 | 线性有界自动机 |
2 | 上下文无关文法 | 下推自动机 |
3 | 正则文法 | 有限状态自动机 |
下 面 使 用 大 写 字 母 表 示 非 终 结 符 , 小 写 字 母 表 示 词 和 句 ( i ) l A r → l w r o r S → λ ( i i ) A → w ( i i i ) A → a B ∣ a o r S → λ 下面使用大写字母表示非终结符,小写字母表示词和句\\ (i)\ lAr\rightarrow\ lwr\\ or\ S\rightarrow \lambda\\ (ii)\ A\rightarrow\ w\\ (iii)\ A\rightarrow\ aB\ |\ a\\ or\ S\rightarrow\lambda 下面使用大写字母表示非终结符,小写字母表示词和句(i) lAr→ lwror S→λ(ii) A→ w(iii) A→ aB ∣ aor S→λ
有限状态机 automaton
有限状态机的基本功能是描述状态转移的机器,因此需要一个状态转移方程,该方程需要一个基本的参数s
,即现态,加上输入i
,产生次态。同时可以考虑在发生状态转移时是否伴随有输出,是否存在停机状态,是否能存储输出
语言识别
如果一个有限状态机能识别一种语言,当且仅当该有限状态机能处理该语言并停机
确定性
表示有限状态机的状态转移方程是否是函数,若是函数,则是确定状态机,否则是非确定状态机,非确定状态机在发生状态转移时会在多个转移规则中选择一个
有限状态自动机
给出有限状态自动机的描述
M = ( S , I , f , F ) M=(S,I,f,F) M=(S,I,f,F)
其中S
表示状态集
I
表示输入的符号集
f
表示状态转移方程
F
表示终结状态集
该自动机无存储器,并且伴随状态转移无输出,且处理正则语言
正则表达式
形如下式的是正则表达式
( i ) ∅ ( i i ) λ ( i i i ) x ∈ I ( i i i i ) 递 归 定 义 当 A , B 是 正 则 式 时 , A B ( 表 示 集 合 的 连 接 ? ) , A ⋃ B , A ∗ ( K l e e n e ∗ ) 也 都 是 正 则 式 (i)\ \empty\\ (ii)\ \lambda\\ (iii)\ x\in I\\ (iiii)递归定义\ 当A,B是正则式时,\\ AB(表示集合的连接?),A\bigcup B,A^*(Kleene *)也都是正则式 (i) ∅(ii) λ(iii) x∈I(iiii)递归定义 当A,B是正则式时,AB(表示集合的连接?),A⋃B,A∗(Kleene∗)也都是正则式
正则集合
一个集合是正则集合当且仅当其所有元素都是正则式
Kleene定理
一个集合是正则的当且仅当它能被一个有限状态自动机识别
下推自动机
下推自动机在有限状态自动机的基础上加上了一个栈
用来存储信息
线性有界自动机
线性有界自动机以条带存储信息,并且该存储器条带是有限长度的
图灵机
最强大的计算模型图灵机,包含无限长的存储条带
几种自动机等价于文法类型的证明看不懂…
NP问题
可计算
一个问题如果能由图灵机计算,那么就叫做可计算问题
P
表示一个问题可在多项式时间被计算出来
NP
表示可以在多项式时间内判定一个解是否是该问题的解,显然P问题包含于NP问题
NPC
最大范围的NP问题,即所有的NP问题是其子集
NP=P
因为所有NP问题的是NPC问题的子集,如果能针对NPC问题找出一个多项式时间内的通解,那么即对所有的NP问题,都存在一个多项式时间内的解,即NP=P