软件理论基础考试复习
14个填空、4个简答、4~5个解答
文章目录
1. 填空
-
直觉主义逻辑常采用三值逻辑来处理命题的真实,包括?
真(True):表示命题是确定为真的
假(False):表示命题是确定为假的
未知(Unknown)或者可疑(?):表示命题的真值尚不确定,既不能被证明为真也不能被证明为假
-
四种简单模态判断分别是:同素材的?
同素材的必然肯定判断、通素材的必然否定判断、同素材的可能肯定判断、同素材的可能否定判断
补充:
同素材的必然P、必然非P、可能P和可能非P四种简单模态判断之间,也存在着一种真假制约关系,即对当关系。这种对当关系同A、E、I、O四种基础性质判断间的对当关系是非常相似的。
- A型判断:直接陈述了一个事实。例如,“这个苹果是红色的”就是一个A型判断
- E型判断:解释一个概念的含义。例如,“‘正义’是指公平和公正的原则”就是一个E型判断
- I型判断:表明两个事件之间的条件关系。例如,“如果今天下雨,那么地面会湿”就是一个I型判断
- O型判断:表明两个属性的对立性。例如,“一个物体不能同时是热的和冷的”就是一个O型判断
-
LTL的元性质?
完备性:任何可以用LTL表述的有效性质都可以通过该公理系统得到证明
封闭性:通过公理系统推导出的所有公式也是LTL公式
决定性:存在算法(如tableau方法或模型检验方法)可以判定一个LTL公式是否为有效(即在所有可能的时间序列中始终为真)
可判定性:对于一些特定问题,比如是否存在一个模型满足给定的LTL公式,存在可计算的解决方案
补充:
- LTL,线性时序逻辑,是一种用于描述系统行为随时间演变的逻辑系统,特别适用于模型检查和验证领域
- LTL有一套形式化的公理系统,通常包括推理规则和公理集合,用来确保逻辑系统的健全性和一致性
- CTL,计算树逻辑,是一种时序逻辑,专门设计用来描述和验证树状结构(特别是状态空间搜索树)中的路径性质
- CTL不仅可以表达线性时序逻辑(LTL)中的某些特性,还能表达路径的存在性和全局性质
- CTL的元性质:完备性、封闭性、可判定性、下推性质
2. 简答题
-
无类别λ演算和带类型λ演算的区别包括?
- 类型系统:
- 无类型λ演算:没有类型系统,因此不能防止非法操作
- 带类型λ演算:有类型系统,类型系统可以检查程序是否符合类型规则,确保类型安全
- 安全性:
- 无类型λ演算:缺乏类型检查,可能导致运行时错误
- 带类型λ演算:通过类型检查可以在编译时捕捉到大部分类型错误,提供更高的安全性
- 表达能力:
- 无类型λ演算:
- 表达能力非常强,可以表示任何可计算函数,是图灵完全的
- 由于没有类型限制,可能导致难以理解和调试程序中的错误
- 带类型λ演算:
- 表达能力同样很强,但由于类型限制,一些不符合类型的表达式不能被表示
- 类型系统可以帮助捕捉一些编程错误,提供更多的结构和清晰性
- 无类型λ演算:
- 类型推断:
- 无类型λ演算:没有类型推断,因为没有类型系统
- 带类型λ演算:有些带类型λ演算系统支持类型推断,可以自动推导出表达式的类型,减少显式类型注释的需求
- 用途:
- 无类型λ演算:多用于理论研究,如研究计算的基本性质、计算模型等
- 带类型λ演算:广泛用于实际编程语言的设计和实现,类型系统可以帮助提高程序的可靠性和可维护性
- 类型系统:
-
写出P类问题及NP类问题的定义以及它们之间的关系
P类问题:P类问题是指可以在多项式时间内由确定性图灵机解决的问题。(P表示确定的图灵机在多项式时间(步数)内可判定的语言类,这些语言对应的问题成为P类问题,这种语言称为多项式可判定的)
NP类问题:NP类问题是指可以在多项式时间内由非确定性图灵机解决的问题。(NP表示不确定的图灵机在多项式时间(步数)内可判定的语言类,这些语言对应的问题成为NP类问题,也称这些问题是NP复杂的,或者NP困难的,这种语言称为非确定性多项式可判定的)
**关系:**包含关系,P类问题是NP类问题的一个子集,即P⊆NP。
补充:
-
简述图灵机的形式化定义
一个图灵机可以形式化地定义为一个七元组:
- Q:有限状态集合
- Σ :输入字母表
- Γ :带符号表,且 Σ⊆Γ
- δ :移动函数,定义为 δ:Q×Γ→Q×Γ×{L,R}
- q0:开始状态
- B:空白符
- F:终止状态集合
-
乔姆斯文法体系
乔姆斯基文法体系将形式语言分为四个层次,从最严格的到最宽松的,依次为0型、1型、2型和3型文法。每种类型的文法都有不同的产生规则,具体如下:
- 0型文法 - 无限制文法 - 短语结构文法
- 定义:最一般的形式文法,没有任何限制,可以生成所有递归可枚举语言
- 产生式形式:α→β,其中 α和 β 是任意的字符串,且 α至少包含一个非终结符
- 语言特性:所有可以被图灵机识别的语言
- 1型文法 - 上下文相关文法
- 定义:每个产生式都要求在特定上下文中进行替换,生成的语言为上下文相关语言
- 产生式形式:αAβ→αγβ,其中 A是一个非终结符,α、β 和 γ 是任意字符串,且 γ 至少与 A 一样长
- 特殊情况:形式 S→ϵ允许的前提是 S 不出现在任何产生式的右侧
- 语言特性:可以由线性有界非确定性图灵机识别的语言
- 2型文法 - 上下文无关文法
- 定义:每个产生式的左侧必须是一个单一的非终结符,生成的语言为上下文无关语言
- 产生式形式:A→β,其中 A是一个非终结符,β 是任意字符串
- 语言特性:可以由非确定性下推自动机识别的语言
- 3型文法 - 正规文法
- 定义:每个产生式要么是一个终结符后跟一个非终结符,要么是一个单一的终结符,生成的语言为正规语言
- 产生式形式:
- 右线性文法:A→aB或 A→aA,其中 A 和 B 是非终结符,a 是终结符
- 左线性文法:A→Ba或 A→aA
- 语言特性:可以由有限状态自动机识别的语言
- 0型文法 - 无限制文法 - 短语结构文法
-
Ackerman函数
阿克曼函数是一个递归函数,通常定义如下:
- 当 m=0时,函数值为 n+1。
- 当 m>0 且 n=0时,函数值为 A(m−1, 1)。
- 当 m>0且 n>0 时,函数值为 A(m−1, A(m, n−1))。
补充:
意义和性质:
- 计算复杂性:阿克曼函数的增长速度极其快,超出了任何多项式或指数函数。这使得它成为计算复杂性理论中的一个典型例子,用于展示某些算法或计算过程中可能遇到的极端复杂性
- 不可计算性:虽然阿克曼函数是完全可计算的,但它展示了如何通过简单的递归规则构造出复杂性极高的函数,它也启发了其他不可计算函数的研究
- 实际应用:在计算机科学中,阿克曼函数用于测试编译器和系统的性能,特别是它们处理递归调用的效率
-
请给出∑上的下列语言的形式表示:
- 所有以xx开头,以yy结尾的串
- 所有包含子串???的串
- 所有正数第?个字符是X的串
相关知识:
{}^n:n次幂,集合中的元素出现n次
{}^+:正闭包,集合中的元素至少出现1次
{}^*:克林闭包,集合中的元素出现任意次(包含0次)
-
请给出G的每个语法范畴代表的集合:
-
S–>aSa|aaSaa|aAa
-
A–>bA|bbbA|bB
-
B–>cB|cC
-
C–>ccC|DD
-
D–>dD|d
-
3. 解答题
3.1 构造与某RE等价的FA(画图)(Tompson构造法)
-
定理
-
例题
3.2 写出语法分析树(画图)
最左派生(规范派生):
最右派生:
二义性:
自顶向下的分析和自底向上的分析:
自顶向下:文法—>符号串
自底向上:符号串—>文法
3.3 根据给定的NFA,构造与之等价的DFA(表格、图)
-
例题
NFA:
转化后的DFA(包含不可达状态的,考试不用写这么多):
-
考题
-
终止状态
NFA中q3是终止状态,则在转化后的DFA中,终止状态是包含NFA终止状态 q3 的所有状态
3.4 表达式的规约过程
-
资料
https://www.cnblogs.com/liumuqiu/p/8965687.html
-
例题1(β变换)
-
例题2
3.5 极小化DFA(简单描述、表格、图)
相关知识:
例题1:
图画错了,这个q5是非终止态
例题2:
图画错了,这个q5是非终止态
例题3:
例题4:
3.6 补充作业题
上述简答题中,要求给出的是语言的形式表示
下面这道题的要求的给出的是语言的文法
(1)写错了,应该是
S—>0A|0
A—>0|1|0A|1A
例题:
作业题:
例题:
作业题:
例题:
作业题: