2019-07-06 其它 置顶 NEW log! 记录2019-7-6从wp迁移到jekyll 2019-8-5~2019-8-7由于一些jekyll的缺点,从jekyll迁回hexo 2019-12-31添加了置顶 其它oi/icpc题解传送门 阅读全文…
2019-12-23 其它 afa记录 记录弱校蒟蒻icpcer被acm荒废(雾)的一年半(从大二到大三上)。 以下比赛只列举比较有意义的国赛。 摸鱼记录这之前大学前大学之前没接触过oi。 校科协大一军训时听了校科协宣讲会后才知道acm的。 听介绍,做面试题,直接被劝退了。 大一上并没有去学它。 a协大一寒假看了《aha算法》(适合0基础看,最通俗易懂地讲解最基础的算法),目的只是了解算法知识,不是打acm。 大一下去玩了一下... 阅读全文…
2019-08-05 课程 sicp ch1-3 笔记 介绍sicp是编程方面的入门课程。 有关sicp的资源和评价很多,在此不多介绍。 一些相关资源链接: 书 SICP 解题集 scheme tutorial ch1 用过程构建抽象概述计算过程(computational process)过程是计算机中抽象的存在,能够产生其他抽象的东西——数据(data)。过程的演变被程序(program)指导,程序由编程语言(programming lang... 阅读全文…
2019-07-11 课程 nand2tetris ch6 汇编器 这一章没多少新内容,主要是按照规则写个汇编器。。。 概述从第6章开始将开始关注计算机的软件层次,其中,汇编器是最基础的模块。 符号汇编指令和相应的二进制编码之间的关系很直接,所以写一个汇编器不难。唯一的困难是管理用户定义符号并解析到物理内存地址,通常会使用符号表(数据结构是哈希表)来完成,这在许多软件翻译项目中都有用到。 由于二进制码的含义相当晦涩,通常机器语言会指定它的二进制码(Binar... 阅读全文…
2019-07-09 课程 nand2tetris ch5 计算机体系结构 概述这一章是硬件部分(1-5章)的最后一章。这一章会使用1-3章的芯片造一个通用计算机(名为Hack),并且可以运行第4章的机器语言编写的程序。 Hack有2个优点,一是简单,几个小时就可以用芯片和硬件模拟器造出来,二是它能够说明任何数字计算机的关键操作和硬件组成。 存储程序概念(The Stored Program Concept)数字计算机是多功能的,能够在有限的硬件平台加载不同的程序,... 阅读全文…
2019-07-07 课程 nand2tetris ch4 机器语言 概述机器语言处于软件和硬件之间,既是一个编程工具,也是硬件平台的组成部分。它旨在编写低级程序当作一系列的机器指令,这些指令命令处理器执行算术和逻辑运算、从内存中存取值、将一个寄存器的值移动到另一个寄存器、测试布尔条件等。和高级语言不同,机器语言的要求是直接执行和完全控制特定的硬件平台。 了解用机器语言编写的低级程序,可以方便我们熟悉计算机系统。这不仅帮助我们理解如何编程,而且可以知道硬件为何... 阅读全文…
2019-07-07 课程 nand2tetris ch3 时序逻辑 概述1、2章的芯片都是组合逻辑电路(Combinational logic circuit),输出只取决于输入,不能保持状态。 时序逻辑电路(Sequential logic circuit)不仅能计算值,而且能够存储值(存在反馈回路)。 ... 阅读全文…
2019-07-07 课程 nand2tetris ch2 布尔运算 概述这一章要使用之前制造的基本逻辑门,来制造出算术逻辑单元(ALU),这个芯片执行计算机的所有的算术和逻辑运算,对于理解CPU和计算机很重要。 首先,要造一个加法器(adder),在此之前需要了解以下知识。 二进制数了解一下进制、进制转换,在此不总结。 二进制数加法和十进制加法类似,从LSB开始对应的位相加,一直加到MSB,若某一位产生进位1,则加到下一位,MSB如果产生了进位,就是溢出(o... 阅读全文…
2019-07-07 课程 nand2tetris ch1 布尔逻辑 概述基于物理学制造出晶体管,晶体管和电路构造出与非门(Nand),与非门(或者 或非门,它们是primitive gates,其它门都是composite gates)可以构造出与门、或门、非门,于是可构造出各种数字电路(任何布尔表达式都可以用与、或、非表示)。所以要构建计算机(课程中名为Hack,一个16位计算机),首先需要了解的是Nand相关的知识。 学习Nand前,先学习布尔代数、真值... 阅读全文…
2019-07-07 课程 nand2tetris ch0 介绍 概述这是一门基于项目的自下而上构建计算机的有趣的课程。 按照以下层次自下而上讲解每一层的构建,每到一层只关心这一层的实现,不关注下面层次的具体实现。 总体不深入,比较浅显易懂。现代计算机体系结构中的2个重要的概念,流水线和存储层次,几乎没有涉及。 ... 阅读全文…