您现在的位置: 精品资料网 >> 管理信息化 >> 信息技术 >> 资料信息

计算机基础知识讲义(doc 19页)

所属分类:
信息技术
文件大小:
294 KB
下载地址:
相关资料:
计算机基础,基础知识,知识讲义
计算机基础知识讲义(doc 19页)内容简介
计算机基础知识讲义内容提要:
忽视了硬件体系的长期稳定。这种稳定性使得很多习惯经验变成了不言自明的信条。 大多数的软件设计方法的革新只不过是用旧石斧打造出来新石斧。在C中我们使用getc,putc来进行IO,在Java中无非是变成了 System.in.read(),System.out.print ()。为什么IO必定是这种形式呢?这是因为我们长期使用着同一种计算机。我们知道PC/Mac这样的计算机中CPU与IO设备进行通信,需要通过各种总 线。
以 C语言为代表的传统的IO,实际上是单CPU上单任务工作模式的投影。在单台计算机上, 传统计算机体系结构决定了CPU处于控制者和决策者的地位。换而言之,我们历来习惯于以CPU的视角来考虑程序的IO逻辑.程序员是将自己假设为CPU. 程序员关心的IO设施只是一个黑盒.我们只需要往IO发送一个请求,然后等待请求回来进行运算,完全不关心这一来一回之间到底发生了什么过程.
但是当我们打开黑盒,观察CPU与IO的通信过程的时候, IO Monad就从幕后走向了台前。以总线的角度看,CPU和外设是等同的,都只是一个具有运算能力和输入输出端口的黑盒.总线正如 Bind/>>=函数一样不关心这些黑盒子里如何运算的,它只关心从这个黑盒拿数据出来放入那个黑盒. 从整个计算机的体系结构看,传统的IO观念只不过是IO Monad的一个局部化形态。
IO Monad实则上在一些接近操作系统底层的软件中,经常扮演者数据总线这种核心角色。比如说Unix/linux shell的管道命令就是彻头彻尾的IO Monad. cat,命令是return/Unit函数,|管道符就是bind/>>=函数。例如:cat sample.txt|grep "High"|wc –l .cat 将sample.txt的文件内容包装成stdout,|管道符将stdout的内容传给grep 命令查询所有单词位High的行,查询的结果又被转化为stdout,再通过|管道符传送给wc命令进行行数统计。微软最新的Shell取名为 Monad,其言下之意恐怕无需赘述了.
不仅如此,IO Monad在结构化程序语言的最初演化的阶段也残留了一些踪迹.很多古老的Pascal程序,都保留了在程序首部书写Input Outpu参数的习惯.
…………
..............................