“计算机科学概论”图解趣味版,太入门了一点。
原书是2003年写,内容过于成旧。
作者先写了《程序是怎样跑起来的》。有一位70多岁的老先生买了一本,但是觉得内容太难理解不了。所以作者又写了更加通俗易懂的这本书。
计算机的三大原则:
1.计算机是执行输入、运算、输出的机器
2.程序是指令和数据的集合
3.计算机的处理方式有时与人们的思维习惯不同计算机进化的目的只有一个——与人类更加相近。要想贴近人类,就必须从计算机的处理方式中摒弃不符合人们思维习惯的部分。
在将一个2字节的数据存储到内存时,存储顺序是低8位在前、高8位在后(也就是逆序存储)。这样的存储顺序叫作“小端序”(Little Endian),与此相反,将数据由高位到低位顺序地存储到内存的存储顺序则叫作“大端序”(Big Endian)。
结构化程序设计是由学者戴克斯特拉提倡的一种编程风格。简单地说,所谓结构化程序设计就是“为了把程序编写得具备结构性,仅使用顺序执行、条件分支和循环表示程序的流程即可,而不再使用跳转指令”。
所谓算法(Algorithm),就是解决既定问题的步骤。
再去查查JIS(日本工业标准),上面写着算法的定义是“被明确定义的有限个规则的集合,用于根据有限的步骤解决问题。那么到底哪种理解方法才是正确的呢?其实无论是哪种方法,只要能够通过实际的编程将其付诸实践,那么这种方法就是正确的。
也就是说用C++等面向对象编程语言编写程序的话,程序可以通过由一个对象去调用另一个对象所拥有的函数这种方式运行起来。这种调用方式被称为对象间的“消息传递”。在面向对象语言中所说的消息传递指的就是调用某个对象所拥有的函数。即便是在现实世界中,我们也是通过对象间的消息传递来开展业务或度过余暇的。在面向对象编程中还可以对对象间的消息传递建立模型。
“继承”(Inheritance)、“封装”(Encapsulation)和“多态”(Polymorphism,也称为多样性或多义性)被称为面向对象编程的三个基本特性。
1970年美国IBM公司的Codd先生设计发明了关系型数据库。现在关系型数据库被广泛应用,以至于一提到数据库就默认是关系型数据库。
所谓标记语言,就是可以用标签为数据赋予意义的语言。
XML并没有限定标签的使用方式,使用什么样的标签都可以。可以说XML仅仅限定了进行标记时标签的书写格式(书写风格)。也就是说通过定义要使用的标签种类,就可以创造出一门新的标记语言。通常把这种用于创造语言的语言称作“元语言”。
所谓计算机系统的设计,就是拆解。老一辈工程师们已经发明出了可作为规范的各种各样的设计方法,这些方法之间的差异只是拆解时的关注点不同。
所谓“对象”(Object),就是把指令和数据归拢到具有一定意义的组中而形成的整体。