大学计算机 计算思维导论 南京航空航天大学 2015 年 计算机科学与技术学院 huangsj@nuaa.edu.cn http://parnec.nju.edu.cn/huangsj
计算思维导论 第 1 章引论 第 3 章问题求解框架 第 4 章算法与复杂性 第 5 章数据抽象 设计与挖掘 第 6 章计算机网络 信息网络与网络化社会
2.1 理解 0 和 1( 的思维 ) 2.2 图灵机与冯 诺依曼计算机 2.3 现代计算机 ( 系统 ) 2.4 不同抽象层级的计算机软件
语言与编译器 不同抽象层级计算机 ( 虚拟机器 ) 操作系统层级计算机 协议与编码器 / 解码器
语言与编译器 不同抽象层级计算机 ( 虚拟机器 ) 操作系统层级计算机 协议与编码器 / 解码器
算法 语言与计算机程序 步骤书写的规范 语法规则 标准的集合是人和计算机都能理解的语言 算法 计算机语言 程序 解决问题的步骤 计算机能够理解与执行的解决问题的步骤
计算机能够理解与执行什么呢? 指令系统 :CPU 用二进制和编码提供的可以解释并执行 的命令的集合 机器语言 : 用二进制和编码方式提供的指令系统所编写程 序的语言被称为机器语言 操作码 地址码 100001 10 00000111 100010 11 00001010 所有程序都需转换成机器语言程序计算机才能执行 用机器语言编写程序存在什么问题呢? 例如 : 完成 7+10 并存储的一段程序 100001 10 00000111 100010 11 00001010 100101 11 00000111 111101 00
汇编语言 用符号编写程序 == 翻译 == 机器语言程序 例如 : 完成 7+10 并存储的一段程序 MOV A, 7 ADD A, 10 MOV (7), A HLT 操作码 地址码 100001 1000000111 汇编语言 : 是用助记符号编写程序的语言 汇编语言源程序 : 是用汇编语言编出的程序 汇编程序 : 是将汇编语言源程序翻译成机器语言程序的程序
汇编语言程序处理过程 源程序 助记符号 MOV A, 7 ADD A, 10 MOV (7), A HLT 汇编程序 自动转换 机器语言程序 二进制和编码 10000110 00000111 10001011 00001010 10010111 00000111 11110100
用汇编语言编写程序存在什么问题呢? 复杂, 不容易编写大程序, 不利于复杂算法的实现 能不能像写数学公式一样编写程序呢? 按类似于自然语言方式书写程序, 然后再自动翻译成机器语言 Result = 7+10; Return
提供一套规范 / 书写标准, 以语句为单位编写程序 开发一个翻译程序, 实现将语句程序自动翻译成机器语言程序的功能 高级语言 用类似自然语言的语句编写程序的语言 高级语言源程序 用高级语言编出的程序 编译程序 将高级语言源程序翻译成机器语言程序的程序
高级语言程序处理过程示意 源程序 语句 Result = 7+10 Return 编译程序 MOV A, 7 ADD A, 10 MOV (7), A HLT 机器语言程序 二进制和编码 10000110 00000111 10001011 00001010 10010111 00000111 11110100
高级语言程序处理过程
能不能像堆积木一样构造程序呢? 用所提供的积木块 ( 一组程序 ) 构造更大一些的积木块, 再用这些积木块构造更大的程序 面向对象的程序设计语言与可视化构造语言 可视化构造语言的积木块, 每一个积木块都对应一组已编写好并可执行的程序
计算机语言发展的基本思维 编程效率高 执行效率高 计算机 /CPU 能识别与执行的 更大的语言积木块 自动转换 语言积木块 自动转换 机器语言程序 编译程序 高级语言源程序 自动转换 编译程序 汇编语言源程序 自动转换 编译程序 汇编程序
不仅要用语言, 还要发明新语言 新语言书写规范及其语法结构 编辑器 新语言源程序 编译器 类自然语言图形化的模型积木块式编程语言智能化语言及模型 ( 面向各专业的 ) 专业化语言 ( 可执行 ) 计算机语言源程序
计算机技术伴随着计算机语言的不断发展而发展 扩展了机器的能力 不断演变与发展 不断提出新的语言 FORTRAN COBOL JAVA C++
语言与编译器 不同抽象层级计算机 ( 虚拟机器 ) 操作系统层级计算机 协议与编码器 / 解码器
计算机 计算机的使用者 -- 所有人应用别人编写的程序 对计算机内部基本不了解
计算机 程序员 -- 计算机相关专业人员用高级语言编写程序 ( 理解 : 操作系统提供的 API 或计算机语言提供的各类函数 / 过程 ) 算法与程序构造能力
计算机 硬件系统程序员 -- 计算机相关专业人员用汇编语言编写程序 理解硬件的结构和指令系统 ; 理解操作系统提供的扩展功能指令 ; 控制硬件的算法与程序的构造能力
计算机 系统程序员 -- 计算机专业人员用机器语言和操作系统指令编写程序 理解 : 硬件的结构和指令系统 ; 理解操作系统提供的扩展功能指令
计算机硬件系统和操作系统程序员 -- 计算机专业人员 用机器语言或用控制信号编写程序 理解 : 硬件的结构和指令系统 ; 理解信号控制逻辑
语言与编译器 不同抽象层级计算机 ( 虚拟机器 ) 操作系统层级计算机 协议与编码器 / 解码器
操作系统层级计算机
OS 怎样控制不同厂家的同类别设备?
OS 怎样让用户不考虑设备的具体操作细节? OS 怎样控制不同类别的设备?
高级语言程序设计 API Library OS: 操作系统 接口 : 设备驱动程序
设备无关层控制 OS: 操作系统 设备相关层控制 设备驱动与接口 设备
语言与编译器 不同抽象层级计算机 ( 虚拟机器 ) 操作系统层级计算机 协议与编码器 / 解码器 机 - 机交互层级的计算机
协议 为交流信息的双方 ( 计算机 ) 能够正确实现信息交流而建立的一套规则 标准或约定
图像的表示与处理 位图图像 像素表达颜色的不同, 需要编码的位数不同 黑白 -1 位 256 级灰度 -8 位 16 色彩色 -4 位 256 色彩色 -8 位 24 位真彩色 -24 位
图像的表示与处理 图像编码 由于位图图像的存储量大 ( 水平像素数目 垂直像素数目 每像素位数 ), 通常都需要进行压缩存储, 不同的压缩采用了不同的图像编码 JPEG: 国际标准化组织 (ISO) 和国际电报电话咨询委员会 (CCITT) 联合成立的 联合照片专家组 于 1991 年 3 用提出了 JPEG 标准 (Joint Photographic Experts Group) 其他常用编码格式有 :BMP,GIF,TIFF,
音频信息的表示与处理 音频编码 : 将连续信号经采样 量化和编码后形成数字音频 采样 : 按一定的频率对连续音频信号做时间上的离散化 量化 : 将所采集的信号点的数值区分成不同位数的离散数值 编码 : 将采集到的离散数值按一定规则编码存储 采样频率 量化精度 编码方法及其保真度
视频信号的表示与处理 视频 : 视频是时间序列的动态图像 ( 如 25 帧 / 秒 ), 连续的模拟信号, 需要经过采样 量化和编码形成数字视频 视频处理相当于按照时间序列处理图像 声音和文字及其同步 视频轨文字轨音频轨
视频信号的表示与处理 视频编码 : MPEG 是 Moving Pictures Experts Group( 动态图象专家组 ) 的缩写 提出了四个版本 :MPEG-I(VCD: Video CD) MPEG-II (DVD:Digital Versatile Disk) MPEG-III MPEG-Ⅳ MIDI 音乐 (Musical Instrument digital Interface),WAV,MP3 等是音频的编码标准
2.1 理解 0 和 1( 的思维 ) 2.2 图灵机与冯 诺依曼计算机 2.3 现代计算机 ( 系统 ) 2.4 不同抽象层级的计算机软件
计算系统的基本思维 从语义层到硬件实现都可使用 0 和 1 表达与处理 ; 图灵将控制处理的规则用 0 和 1 表达, 将待处理的信息及结果也用 0 和 1 表达, 处理即是对 0 和 1 的变换, 提出了计算机的理论模型 --- 图灵机 ; 冯诺依曼提出了将程序和数据存储于存储器中, 实现连续自动计算的现代计算机模型 --- 冯诺依曼计算机, 促进了计算机技术由理论向实现的转变 ; 计算机的发展伴随的是计算机语言的发展, 使计算机所能实现的功能也越来越多越来越大 ; 计算技术, 本质上讲可认为是将各种语义信息绑定于 0,1 及其之上的符号串, 定义绑定规则形成协议或语言, 然后通过实现协议解析或语言编译来实现计算能力的提升 ; 复杂问题可通过分离或分层, 化难为简, 得到实现