一、计算(机械而有效的方式获取问题答案)理论:中心从数学转至计算机科学
1.1 核心问题:计算机的基本能力和限制是什么?
-
可计算性理论:究竟哪些问题,可通过计算解决?
计算和算法:一阶逻辑谓词可解决的话,就可以用数理逻辑一劳永逸的解决问题。有些问题是不存在算法的。
-
计算复杂性理论:解决可计算的问题,究竟需要多少资源?
到底是什么原因导致有些问题需要耗用大量资源才能解决?——可以对问题按照性质不同进行分类。
-
形式语言与自动机理论:为了研究计算,要使用哪些计算模型?
简单明确、功能强大。
1.2 自动机理论:研究抽象机器及其所能解决问题的理论
- 图灵机:计算机的理论抽象模型,它区分了哪些问题是可计算的,哪些是不可计算的。(P = NP ?)
- 有限状态机:数字电路、通信协议的设计验证方面等实际问题中有重要应用。
- 文法、下推自动机:在计算机语言设计和编译器的实现上发挥了重要的作用。
1.3 形式语言
如果说自动机是研究计算的模型,那么语言就是去研究计算的问题或实例。
形式语言:经数学定义的语言。
二、基本概念
2.1 形式语言中的基本概念:字母表 字符串 集合
-
字母表:符号(字符)的非空有穷集。(类似几何中的点、线,不再做过多定义。)
-
字符串:由某字母表中的符号组成的有穷序列。
-
空串:记为 ϵ \epsilon ϵ (\epsilon),有0个字符的串。
字母表 Σ \Sigma Σ 可以是任意的,但都有 ϵ ∉ Σ \epsilon \notin \Sigma ϵ∈/Σ .
-
字符串的长度:字符串中符号所占位置的个数,记为 | |
下面给出递归的定义:
若 字 母 表 为 Σ , 其 中 a ∈ Σ , w 和 x 是 Σ 中 字 符 组 成 的 字 符 串 若字母表为 \Sigma,其中 a \in \Sigma,w 和 x 是 \Sigma 中字符组成的字符串 若字母表为Σ,其中a∈Σ,w和x是Σ中字符组成的字符串
∣ w ∣ = { 0 , w = ϵ ∣ x ∣ + 1 , w = x a |w| = \begin{cases} 0,w=\epsilon \\ |x|+1,w=xa \end{cases} ∣