随笔分类 -  计算机科学

摘要:除了能用Coq完成前面所介绍过的各种数学证明,还可以用Coq研究一些其他的事情。Coq中包含一种简单的命令式编程语言Imp,它包含了传统主流语言(如C和Java)的一小部分核心。 下面是一个用Imp语言编写的一个熟悉的数学函数: 而这里只是对Imp编程语言的语法和语义进行简单的介绍 算术和布尔表达式 阅读全文
posted @ 2019-12-28 00:25 2hYan9 阅读(789) 评论(0) 推荐(0)
摘要:递归命题 在前面有介绍过几种说明自然数n是一个偶数的方法,比如: 1. evenb n = true,或者 2. exists k, n = double k 现在,可以通过一条递归的规则来判断一个整数n是否是偶数: + ev_0:数字0是偶数 + ev_SS:如果n是偶数,那么S(S n)也是偶数 阅读全文
posted @ 2019-12-26 16:53 2hYan9 阅读(1069) 评论(0) 推荐(0)
摘要:Coq中的命题类型语句 Coq是一种类型化语言,这意味着它的世界中的每个合理表达式都有一个相关的类型。逻辑声明也不例外,任何一个可以证明的语句都有一个类型,即Prop,命题类型。 可以使用check命令查看这个类型: 需要注意的是,任何符合命题语法定义的语句都是Prop类型的,不论它们是否成立,关键 阅读全文
posted @ 2019-12-23 23:47 2hYan9 阅读(863) 评论(0) 推荐(0)
摘要:在前面的 "Proof in Coq" 中介绍了几种简单的证明方法以及常用的策略(tactics),而这里则是介绍几种更为复杂的证明策略: [apply]策略 在进行证明的时候经常遇到这样的情况,即要证明的目标与上下文中的某个假设或某个先前已证明的引理完全相同。 有时候可以使用[rewrite]然后 阅读全文
posted @ 2019-11-30 17:12 2hYan9 阅读(1278) 评论(0) 推荐(0)
摘要:多态 在前面所定义的链表中,链表的元素都是自然数,(或者PartitialMap中以一个二元元组为元素),但这些都存在着一个问题:所有类型的链表都在定义的都限制了链表的元素为某一个确定的类型,这样就不太灵活了,如果需要定义的链表类型比较多的话,那么就需要为每一种类型的链表单独写一段声明代码。 比如, 阅读全文
posted @ 2019-10-23 21:06 2hYan9 阅读(524) 评论(0) 推荐(0)
摘要:定义元组 其实在Coq基础(一)中的NewTypeFromOld中就已经定义过一个叫做nybble类型的元组了,那个类型的元组有四个bit类型的成员,构造器为bits。而这里再次定义一个只有两个自然数类型成员的元组: Inductive natprod : Type := | pair (n1 n2 阅读全文
posted @ 2019-10-12 11:36 2hYan9 阅读(750) 评论(0) 推荐(0)
摘要:Proof By Simplification 在前面定义数据类型以及函数的时候有使用过Example语句来说明和证明数据的属性。 所使用的证明方法都是一样的:使用关键字simpl来化简等式两边的表达式,然后再使用reflexivity来验证等式两边是否相等。 此外,还可以使用proof by si 阅读全文
posted @ 2019-09-23 20:19 2hYan9 阅读(2056) 评论(0) 推荐(0)
摘要:定义一个类型 在coq中,一个变量的类型往往表示为 var_name : var_type,即变量名后面的一个冒号后是变量的类型 Inductive type_name : Type := constructor 1 constructor 2 ... constructor n. (*注意最后一个 阅读全文
posted @ 2019-09-22 22:45 2hYan9 阅读(2885) 评论(0) 推荐(0)
摘要:lambda abstraction(lambda abstraction) 在lambda运算中,函数的表达式与平常的不同: f(x)=M,应该表示成λx.M(带函数名的写法为,f≡λx.M)的形式,这样左到目的是为了省略函数的名称,从而更加简洁 lambda abstraction中点号的后面包 阅读全文
posted @ 2019-09-09 11:29 2hYan9 阅读(438) 评论(0) 推荐(0)
摘要:物理和虚拟寻址 计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组。每字节都有一个唯一的物理地址。第一个字节的地址为0,接下来的字节地址为1,再下一个为2,依此类推。所以最简单的结构就是,CPU访问内存的最自然的方式就是使用物理地址。我们把这种方式称为物理寻址。下图是一个物理寻址的示意 阅读全文
posted @ 2019-07-24 21:45 2hYan9 阅读(423) 评论(0) 推荐(1)
摘要:异常 异常就是控制流中的突变,用来响应处理器状态终端某些变化。 当处理器状态中发生一个重要的变化时,处理器正在执行某个当前指令,在处理器中状态被编码为不同的位和信号。状态变化称为事件。 在任何情况下,当处理器检测到有事件发生时,它就会通过一张叫做异常表的跳转表,进行一个间接跳转过程调用,到一个专门设 阅读全文
posted @ 2019-07-23 23:25 2hYan9 阅读(302) 评论(0) 推荐(0)
摘要:静态链接 静态链接器以一组可重定位目标文件和命令行参数作为输入,生成一个完全链接的、可以加载和运行的可知陷阱目标文件作为输出。 输入的可重定位目标文件有各种不同的代码和数据节组成,每一节都是一个连续的字节序列。 为了构造可执行文件,连接器必须完成两个主要任务: 符号解析,目标文件定义和引用符号,每个 阅读全文
posted @ 2019-07-20 14:53 2hYan9 阅读(283) 评论(0) 推荐(0)
摘要:随机访问存储器(Random Access Memory,RAM) RAM分为两种:静态的和动态的。 SRAM,用来作为高速缓存存储器,既可以放在CPU芯片上,也可以放在片下。由于SRAM存储器单元的双稳态特性,只要有电,它就会永远地保持它的值。即使有干扰来扰乱电压,当干扰消除时,电路就会恢复到稳定 阅读全文
posted @ 2019-06-25 11:17 2hYan9 阅读(587) 评论(0) 推荐(0)
摘要:上下文无关文法的范式 可以证明任何CFL都可以用只有A→BC或者A→α形式产生式的CFG产生,其中A,B和C是变元,而α是终结符。这种形式称为乔姆斯基范式(Chomsky Normal Form, CNF)。 为了得到这种形式的CFG,我们需要做很多初步的简化,而这些简化方法本身在很多方面都很有用: 阅读全文
posted @ 2019-06-15 16:08 2hYan9 阅读(3188) 评论(0) 推荐(1)
摘要:下推自动机 下推自动机有一个七元组定义: 下面给出一个例子: PDA的状态迁移图 PDA的瞬时描述 一个PDA的瞬时描述对应于一个三元组。 PDA瞬时描述的迁移: PDA瞬时描述迁移的定理: 下推自动机接受的语言 以终结状态的方式接受 PDA通过消耗输入并且j进入接受状态来接受它的输入串,这种方式称 阅读全文
posted @ 2019-06-12 22:52 2hYan9 阅读(4547) 评论(0) 推荐(0)
摘要:上下文无关文法 下面给出一个例子: 上下文无关文法的推导 生成树 下面给出一个例子: 歧义文法 如果一个字符串有多个推导,或者有多个生成树可以生成同样的字符串,则称这个文法是歧义的。如果每个字符串都只对应于一个生成树,则称这个文法是非歧义的。 下面给出一个例子: 去除文法的歧义性 无法根据一个确切的 阅读全文
posted @ 2019-06-12 22:20 2hYan9 阅读(2590) 评论(0) 推荐(0)
摘要:正则表达式的运算符 1、两个语言L和M的并,记作L∪M,是只属于L或属于只属于M,或者同时属于二者的串的集合。这个运算符有时也记作L+M。 2、语言L和M的连接是以下形成的串的集合:取L中任意一个串,与M中任意一个串连接起来。一般用圆点或者根本不用任何运算符来表示两个语言的连接。 3、语言L的闭包( 阅读全文
posted @ 2019-06-03 18:55 2hYan9 阅读(2740) 评论(0) 推荐(0)
摘要:字母表: 字母表是符号的有穷非空集合。用“Σ”符号表示字母表。常见的字母表包括: 串: 串(有时候被称为单词)是从某个字母表中选择的符号的有穷序列。 空串: 空串是出现0次符号的串。这个串记作ε,是可以从任何字母表中选择的串。 串的长度: 串的长度,即串中的符号的位数。串的长度的标准记号是|w|。例 阅读全文
posted @ 2019-05-15 08:48 2hYan9 阅读(717) 评论(0) 推荐(0)
摘要:概述 有穷自动机有一组状态及其控制,响应外部的“输入”,“控制”从状态移动到状态。各类有穷自动机之间的关键区别之一,在于控制究竟是“确定的”还是“非确定的”,前者意味着在任何时候自动机不能处在一种以上的状态中,后者意味着自动机能同时储在几种状态中。 确定型有穷自动机(DFA) 通常同一个五元组来讨论 阅读全文
posted @ 2019-05-10 18:08 2hYan9 阅读(902) 评论(0) 推荐(0)
摘要:MAC协议分类: 信道划分MAC协议:多路复用技术。 随机访问MAC协议:信道不划分,允许发生冲突,采用冲突恢复机制。 轮转MAC协议:结点轮流使用信道。 随机访问MAC协议: 在给定的一个“帧时”内期望有G帧,但生成k帧的概率服从泊松分布: 纯ALOHA协议:当有用户有数据需要发送时就传输,发送方 阅读全文
posted @ 2019-04-25 11:09 2hYan9 阅读(577) 评论(0) 推荐(0)