《高级程序设计语言原理》第二章 语言设计问题

第二章 语言设计问题
第二章 语言设计问题

早期的语言设计需使程序能高效地运行于昂贵的硬件上,因此 早期语言总以翻译成高效的机器码为目标,既使程序难以书写。 现在,硬件价格下降、软件价格上升,更强调程序容易书写, 即使慢点也可。例如,ML的类型特性、C++的类、Ada的 Package均在执行速度上有代价,但对保证程序正确性有帮助 开发语言时,有三个影响语言设计的主要因素: 计算机本身 在计算机上支持语言的执行模型,即虚拟计算机 语言所实现的计算模型
•早期的语言设计需使程序能高效地运行于昂贵的硬件上,因此, 早期语言总以翻译成高效的机器码为目标,既使程序难以书写。 •现在,硬件价格下降、软件价格上升,更强调程序容易书写, 即使慢点也可。 例如,ML的类型特性、C++的类、Ada的 Package均在执行速度上有代价,但对保证程序正确性有帮助。 •开发语言时,有三个影响语言设计的主要因素: 计算机本身 在计算机上支持语言的执行模型,即虚拟计算机 语言所实现的计算模型

21计算机的结构和操作 个计算机是能够存储和执行程序的数据结构和算法的集成集 计算机可构造为实际的物理设备,用导线、集成电路、电路板 等。此即实际计算机或称硬件计算机。 ˆ计算机构造为软件,用运行于其他计算机上的程序。此即软件 仿真计算机 程序设计语言的实现是通过一个翻译器,将以语言书写的程序 翻译为机器语言程序(可为某计算机直接执行,可以是硬件计 算机,也可以为软硬参杂的虚拟机)
2.1 计算机的结构和操作 •一个计算机是能够存储和执行程序的数据结构和算法的集成集 合。 •计算机可构造为实际的物理设备,用导线、集成电路、电路板 等。此即实际计算机或称硬件计算机。 •计算机构造为软件,用运行于其他计算机上的程序。此即软件 仿真计算机。 •程序设计语言的实现是通过一个翻译器,将以语言书写的程序 翻译为机器语言程序(可为某计算机直接执行,可以是硬件计 算机,也可以为软硬参杂的虚拟机)

一个计算机包含6个主要部件,它们紧密地对应于程序设计 语言的主要方面 1、数据:计算机必须提供各种基本数据项和操作的数据 结构 2、基本操作:必须提供对操作数据有用的基本操作集 3、顺序控制:必须提供控制基本操作执行顺序的机制 4、数据访问:必须提供控制向操作的执行供给数据的机 制 5、存储管理:必须提供控制程序和数据存储分配的机制 6、操作环境:必须提供与包围程序和被处理数据的外部 环境通讯的机制
•一个计算机包含6个主要部件,它们紧密地对应于程序设计 语言的主要方面。 1、数据:计算机必须提供各种基本数据项和操作的数据 结构。 2、基本操作:必须提供对操作数据有用的基本操作集。 3、顺序控制:必须提供控制基本操作执行顺序的机制。 4、数据访问:必须提供控制向操作的执行供给数据的机 制。 5、存储管理:必须提供控制程序和数据存储分配的机制。 6、操作环境:必须提供与包围程序和被处理数据的外部 环境通讯的机制

计算机硬件 个典型的传统计算机组织如下: External files and input-output equipment Main memory 包括程序和被处理的数据 Cache memory Program Address gh-speed Register Data Registers reg 完成处理工作 取机器指令 Active Primitiv Primitive Interpreter <--- processing 解码 operation t operation k elements CENTRAL PROCESSING UNIT 操作主存和高速缓存中的数据 调用指定的基本操作,以指定的操作数作为输入在主存和外部环境间传递程序或数据
计算机硬件 •一个典型的传统计算机组织如下: 包括程序和被处理的数据 操作主存和高速缓存中的数据 在主存和外部环境间传递程序或数据 完成处理工作 取机器指令 解码 调用指定的基本操作,以指定的操作数作为输入

数据 有三个主要的存贮部件:主存,高速寄存和外部文件。 主存:组织为线性位串,可分为定长的字(32或64)或8 位字节。 寄存器:字长度的位串,可能有特殊的子域可直接访问, 可存数据或主存地址。 外部文件:存在盘、带或 CD-ROM上,按记录划分,记 录是位或字节的序列 个计算机有被硬件基本操作直接操作的固有数据类型。 般有:整数、单精度实数(浮点数)、定长字符串、 定长位串等。 除了明显的硬件数据元素外,程序(也有固有的内部表 示,称为机器语言表示)也是一种数据形式 机器语言程序可构造为存储位置的序列,每个包含一或 多条指令,每条包括操作码和若干操作数(指示)
•数据 有三个主要的存贮部件:主存,高速寄存和外部文件。 主存:组织为线性位串,可分为定长的字(32或64)或8 位字节。 寄存器:字长度的位串,可能有特殊的子域可直接访问, 可存数据或主存地址。 外部文件:存在盘、带或CD-ROM上,按记录划分,记 录是位或字节的序列。 一个计算机有被硬件基本操作直接操作的固有数据类型。 一般有:整数、单精度实数(浮点数)、定长字符串、 定长位串等。 除了明显的硬件数据元素外,程序(也有固有的内部表 示,称为机器语言表示)也是一种数据形式。 机器语言程序可构造为存储位置的序列,每个包含一或 多条指令,每条包括操作码和若干操作数(指示)

操作 计算机必须包含有一个固有的基本操作集,通常和机器 语言指令中操作码一一对应 典型的操作集包括在固有数值类型上的基本算术操作。 测试数据项各种性质的基本操作。 访问和修改数据项的基本操作。 控制I/O设备的基本操作。 顺序控制的基本操作 传统的机器是CISC, complex instruction set computers 新近发展的是RISC, reduced instruction set computers 更少的基本指令,更简单的内部逻辑
•操作 计算机必须包含有一个固有的基本操作集,通常和机器 语言指令中操作码一一对应。 典型的操作集包括在固有数值类型上的基本算术操作。 测试数据项各种性质的基本操作。 访问和修改数据项的基本操作。 控制I/O设备的基本操作。 顺序控制的基本操作。 传统的机器是CISC,complex instruction set computers. 新近发展的是RISC,reduced instruction set computers. 更少的基本指令,更简单的内部逻辑

顺序控制 程序地址寄存器(位置计数器)的内容决定了下一条将 执行的指令,即包含了下条指令的地址 某些基本操作允许修改程序寄存器,从而传递控制到程 序的其他部分 解释器实际地使用程序地址寄存器并指导操作序列 解释器是计算机操作的中心,其周期动作如图所示:
•顺序控制 程序地址寄存器(位置计数器)的内容决定了下一条将 执行的指令,即包含了下条指令的地址。 某些基本操作允许修改程序寄存器,从而传递控制到程 序的其他部分。 解释器实际地使用程序地址寄存器并指导操作序列。 解释器是计算机操作的中心,其周期动作如图所示:

Fetch next instruction Decode instruction(determine the operation and operand designators Fetch designated operands Branch to designated operation Execute Execute xecute Execute primitive primitive primitive halt operation 1 operation operation operation Stor

数据访问 除了操作码外,每个机器指令必须指明所需的操作数 (必须在主存或寄存器中) 计算机必须结合指定操作数的手段和从给定操作数指示 器检索操作数的机制。同时,操作的结果也必须存储在 指定的位置 传统的存储控制杋制是为存储位置设定整数地址,提供 操作从给定地址的位置检索内容和存储新值 寄存器也赋以整数地址
•数据访问 除了操作码外,每个机器指令必须指明所需的操作数 (必须在主存或寄存器中) 计算机必须结合指定操作数的手段和从给定操作数指示 器检索操作数的机制。同时,操作的结果也必须存储在 指定的位置。 传统的存储控制机制是为存储位置设定整数地址,提供 操作从给定地址的位置检索内容和存储新值。 寄存器也赋以整数地址
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《计算方法》第二章 迭代法.doc
- 《计算方法》第二章(2-1)求隔根区间.doc
- 《计算方法》第一章 绪论.ppt
- 《计算方法》习题一.doc
- 《计算方法》第七章 常微分方程数值解.doc
- 《计算方法》第六章(6-3)复化求积公式.doc
- 《计算方法》第六章(6-2)Newton-Cotes.doc
- 《计算方法》第六章(6-1) 值积分的基本概念.doc
- 《计算方法》第四章(4-2)牛顿插值公式.doc
- 《计算方法》第四章(4-1)代数多项式插值.doc
- 《计算方法》第三章(3-4)迭代法.doc
- 《计算方法》第三章(3-2)矩阵的三角分解.doc
- 《计算方法》第三章 线性方程组解法.doc
- 《计算方法》第二章(2-3)续 Newton迭代法的变形.doc
- 《计算方法》第二章(2-3)牛顿( Newton)迭代方法.doc
- 湖南大学:《C语言程序设计》课程电子教案(PPT教学课件)第九章 指针 §9.1 指针的概念 §9.2 指针变量的定义和引用 §9.3 数组的指针及指向数组的指针变量.ppt
- 湖南大学:《C语言程序设计》课程电子教案(PPT教学课件)第六章 数组 §6.3 字符数组、第八章编译预处理 §8.1 宏定义 §8.2 文件包含 §8.3 条件编译.ppt
- 湖南大学:《C语言程序设计》课程电子教案(PPT教学课件)第六章 数组 §6.1 一维数组 §6.2 二维数组.ppt
- 湖南大学:《C语言程序设计》课程电子教案(PPT教学课件)第七章 函数(主讲:李丽娟).ppt
- 湖南大学:《C语言程序设计》课程电子教案(PPT教学课件)第四章 逻辑运算和判断选取控制 §4.4 switch 语句–––开关语句 §4.5 程序举例、第五章 循环控制.ppt
- 《高级程序设计语言原理》第三章 语言翻译.ppt
- 《高级程序设计语言原理》第四章 数据类型.ppt
- 《高级程序设计语言原理》第五章 抽象一:封装.ppt
- 《高级程序设计语言原理》第六章 顺序控制.ppt
- 《高级程序设计语言原理》第七章 子程序控制.ppt
- 《高级程序设计语言原理》第八章 抽象二:继承.ppt
- 《高级程序设计语言原理》第一章 程序设计语言研究.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第一讲 基本知识.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第二讲 数据类型.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第三讲 运算符与表达式.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第四讲 顺序结构.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第六讲 循环结构.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第八讲 编译预处理.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第七讲 数组.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第五讲 选择结构.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第十一讲 结构体与共用体.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第十讲 指针.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第九讲 函数.ppt
- 清华大学:《多媒体技术》课程教学资源(教材教案讲义)第1章 多媒体技术概要.doc
- 清华大学:《多媒体技术》课程教学资源(教材教案讲义)第2章 数字声音及MDI简介.doc