第二章 语言设计问题
第二章 语言设计问题
早期的语言设计需使程序能高效地运行于昂贵的硬件上,因此 早期语言总以翻译成高效的机器码为目标,既使程序难以书写。 现在,硬件价格下降、软件价格上升,更强调程序容易书写, 即使慢点也可。例如,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 操作主存和高速缓存中的数据 调用指定的基本操作,以指定的操作数作为输入在主存和外部环境间传递程序或数据
计算机硬件 •一个典型的传统计算机组织如下: 包括程序和被处理的数据 操作主存和高速缓存中的数据 在主存和外部环境间传递程序或数据 完成处理工作 取机器指令 解码 调用指定的基本操作,以指定的操作数作为输入