正在加载图片...
254编的奥 Chad∴cow 的机器码,取而代之的是用代数符号来表示许多数学运算。以下是一个例子: A×sin(2×pI+B)/C 这里A、B和C是数字,PI=3.14159。 既然如此,何乐而不为呢?如果这样的一条语句是在一个文本文件里,则可以编写汇编 语言程序读取文本文件并把代数表达式转换成机器代码 如果只计算一次这样的代数表达式,则可以手算或用计算器计算。如果需要用不同的 C值来计算表达式的值,则可能需要考虑如何用计算机来计算。正因为如此,代数表达式 不可能单独出现,应该考虑到表达式的上下文,用不同的值代入计算。 现在已开始创建所谓的高级程序设计语言。汇编语言称作低级语言,因为它与计算机硬 件密切相关。尽管“高级”用来描述除汇编语言以外的任何程序设计语言,但这些语言中, 些语言还比另一些语言更要高级一些。如果你是一家公司的总裁,且坐在计算机前输入 “计算全年的收益和支出,做出年度报表,打印两千份给所有的股东”,那么你确实正在用非 常高级的语言工作。在现实生活中,程序设计语言并没有达到这样理想的境界。 人类语言是千百年来复杂的影响、随机变化和不断适应的结果,即使像世界语这样的人 工语言也来源于现实语言。然而,高级计算机语言是审慎而周密的概念语言。发明程序设计 语言面临的挑战是如何使语言具有吸引力,因为语言定义了人们如何向计算机发送指令。从 20世纪50年代开始到1993年,估计已发明和实现了1000多种高级语言。 当然,这还并不足以简单地定义高级语言(它牵涉到语言所采用的语法),还必须有编译 程序用来将高级语言语句转换成机器码。像汇编程序一样,编译程序需要一个字符接一个字 符地读取源代码文件,并分解成短语、符号和数字,但编译程序比汇编程序更复杂。从某种 意义上讲,汇编程序较简单,因为在汇编语言语句与机器码之间有一一对应的关系。编译程 序通常需要把一条高级语言语句转换成许多机器码指令。编译程序不容易编写,许多书中描 述了它们的设计与构造,所以本书不作介绍了。 高级语言有优点也有缺点。最主要的优点是高级语言比汇编语言容易学且容易编写。用 高级语言编写的程序清晰、简明。高级语言通常是可移植的——也就是说,它不像汇编语言 那样依赖于特定的处理器。所以,程序设计员不需要知道程序将要运行其上的机器的内部结 构。当然,如果需要让程序在不止一种处理器上运行,则需要相应的编译程序生成针对这些 处理器的机器码。可执行文件仍然只适用于某一个处理器。 另一方面,差不多都是如此,一个好的汇编语言程序设计员可以写出比编译程序所能产 生的更优化的代码。也就是说,用高级语言编写的程序所产生的可执行文件比用汇编语言编 写功能相同的程序所产生的可执行文件要大,且执行速度较慢。(最近几年,随着微处理器的 日趋复杂以及编译程序在优化代码方面的日趋成熟,这种差别已变得不很明显。) 还有,尽管高级语言使得处理器更容易使用,但并没有使它的功能更强大。而使用汇编 语言可以最大限度地利用处理器的能力。因为高级语言需要转换成机器码,所以高级语言只 会降低处理器的能力。如果一个高级语言是真正可移植的,则它不能使用某种处理器的独有 特点。 例如,许多处理器都有移位指令。前面讲过,这些指令把累加器中的位向左或向右移动。 但是,几乎没有高级语言有这样的操作。如果程序中要用到移位,则需要用乘2或除2操作来 处理(其实,现在许多编译程序都用处理器的移位指令来实现乘或除以2的幂)。许多高级语的机器码,取而代之的是用代数符号来表示许多数学运算。以下是一个例子: A×Sin(2×PI+B)/C 这里A、B和C是数字,PI = 3 . 1 4 1 5 9。 既然如此,何乐而不为呢?如果这样的一条语句是在一个文本文件里,则可以编写汇编 语言程序读取文本文件并把代数表达式转换成机器代码。 如果只计算一次这样的代数表达式,则可以手算或用计算器计算。如果需要用不同的 A、 B、C值来计算表达式的值,则可能需要考虑如何用计算机来计算。正因为如此,代数表达式 不可能单独出现,应该考虑到表达式的上下文,用不同的值代入计算。 现在已开始创建所谓的高级程序设计语言。汇编语言称作低级语言,因为它与计算机硬 件密切相关。尽管“高级”用来描述除汇编语言以外的任何程序设计语言,但这些语言中, 一些语言还比另一些语言更要高级一些。如果你是一家公司的总裁,且坐在计算机前输入 “计算全年的收益和支出,做出年度报表,打印两千份给所有的股东”,那么你确实正在用非 常高级的语言工作。在现实生活中,程序设计语言并没有达到这样理想的境界。 人类语言是千百年来复杂的影响、随机变化和不断适应的结果,即使像世界语这样的人 工语言也来源于现实语言。然而,高级计算机语言是审慎而周密的概念语言。发明程序设计 语言面临的挑战是如何使语言具有吸引力,因为语言定义了人们如何向计算机发送指令。从 2 0世纪5 0年代开始到1 9 9 3年,估计已发明和实现了1 0 0 0多种高级语言。 当然,这还并不足以简单地定义高级语言(它牵涉到语言所采用的语法),还必须有编译 程序用来将高级语言语句转换成机器码。像汇编程序一样,编译程序需要一个字符接一个字 符地读取源代码文件,并分解成短语、符号和数字,但编译程序比汇编程序更复杂。从某种 意义上讲,汇编程序较简单,因为在汇编语言语句与机器码之间有一一对应的关系。编译程 序通常需要把一条高级语言语句转换成许多机器码指令。编译程序不容易编写,许多书中描 述了它们的设计与构造,所以本书不作介绍了。 高级语言有优点也有缺点。最主要的优点是高级语言比汇编语言容易学且容易编写。用 高级语言编写的程序清晰、简明。高级语言通常是可移植的—也就是说,它不像汇编语言 那样依赖于特定的处理器。所以,程序设计员不需要知道程序将要运行其上的机器的内部结 构。当然,如果需要让程序在不止一种处理器上运行,则需要相应的编译程序生成针对这些 处理器的机器码。可执行文件仍然只适用于某一个处理器。 另一方面,差不多都是如此,一个好的汇编语言程序设计员可以写出比编译程序所能产 生的更优化的代码。也就是说,用高级语言编写的程序所产生的可执行文件比用汇编语言编 写功能相同的程序所产生的可执行文件要大,且执行速度较慢。(最近几年,随着微处理器的 日趋复杂以及编译程序在优化代码方面的日趋成熟,这种差别已变得不很明显。 ) 还有,尽管高级语言使得处理器更容易使用,但并没有使它的功能更强大。而使用汇编 语言可以最大限度地利用处理器的能力。因为高级语言需要转换成机器码,所以高级语言只 会降低处理器的能力。如果一个高级语言是真正可移植的,则它不能使用某种处理器的独有 特点。 例如,许多处理器都有移位指令。前面讲过,这些指令把累加器中的位向左或向右移动。 但是,几乎没有高级语言有这样的操作。如果程序中要用到移位,则需要用乘 2或除2操作来 处理(其实,现在许多编译程序都用处理器的移位指令来实现乘或除以 2的幂)。许多高级语 254 编码的奥秘 下载
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有