计算机科学的抽象本质
计算机科学,每个角落似乎都在不断的革新,满天飞的英文俗语,看不完的IT咨询,唯有本质是不变的,那就是抽象,计算机科学的本质就是抽象,我们都工作在不同的抽象层级或者抽象维度。
?
抽象的使用是计算机科学中最为重要的概念之一。例如,为一组函数规定一个简单的应用程序接口(API)就是一个很好的编程习惯,程序员无需了解它内部的工作便可以使用这些代码。不同的编程语言提供不同形式和等级的抽象支持,例如Java 类的声明和C 语言的函数原型。
?
计算机中的主要抽象,在处理器里,指令集结构提供了对实际处理器硬件的抽象。使用这个抽象,机器代码程序表现得就好像它是运行在一个一次只执行一条指令的处理器上。底层的硬件比抽象描述的要复杂精细得多,它并行地执行多条指令,但又总是与那个简单有序的模型保持一致。只要执行模型一样,不同的处理器实现也能执行同样的机器代码,而又提供不同的开销和性能。在学习操作系统时,我们介绍了三个抽象:文件是对I/O 的抽象,虚拟存储器是对程序存储器的抽象,而进程是对一个正在运行的程序的抽象。我们再增加一个新的抽象:虚拟机,它提供对整个计算机(包括操作系统、处理器和程序)的抽象。虚拟机的思想是IBM 在20 世纪60 年代提出来的,但是最近才显示出其管理计算机方式上的优势,因为一些计算机必须能够运行为不同操作系统(例如,Microsoft Windows、MacOS 和Linux)或同一操作系统的不同版本而设计的程序。
?
计算机网络其本质对计算机来说是一种IO,所以可以归类为文件抽象。
?
?