1.6 机器语言、汇编语言和高级语言
程序员用各种编程语言编写指令,有些是计算机直接理解的,有些则需要中间翻译(tranlation)的步骤。如今使用的计算机语言有几百种,可以分为三大类:
- 机器语言
- 汇编语言
- 高级语言
任何计算机只能直接理解本身酌机器语言(machine language)。机器语言是特定计算机的自然语言,由计算机的硬件设计定义。机器语言通常由一系列数字组成(最终简化0和1),让计算机一次一个地执行最基本的操作。机器语言非常繁琐,下面的机器语言程序将工龄工资和基础工资相加,并把结果保存在工资总额中:
- +1300042774
- +1400593419
- +1200274027
随着计算机越来越普及,机器语言编程对大多数程序员显然太慢、太繁琐。程序员不用计算机直接理解的一系列数字,而是用类似英文缩写的助记将来表示计算机的基本操作,这些助记符构成了汇编语言(assemblylanguage)。称为汇编器(assembler)的翻译程序以计算机的速度将汇编语言程序转换为机器语言。下列汇编程序也是工龄工资和基础工资相加,并将结果保存在总工资中,但要比相应的机器语言清晰得多:
- LOAD BASEPAY
- ADD OVERPAY
- STORE
- GROSSPAY
尽管这种代码对于人们一目了然,但计算机却无法理解,必须先翻译为相应的机器语言。
随着汇编语言的出现,计算机的使用迅速增加,然而即使是最简单的任务.也需要许多条指令才能完成。为了加速编程过程,人们开发了高级语言(high-level language),用一条语句完成大量任务。称为编译器(compiler)的翻译程序将高级语言程序变为相应的机器语言。高级语言使程序员能够编写更像英语的指令,可以包含常用的数学符号。将工龄工资和基础工资相加.并把结果保存在总工资中,可以用下列高级语言程序:
grossPay = basePay + overTimePay
显然,从程序员角度看,高级语言比机器语言和汇编语言都要强得多。
C 和 C++ 是最强大最广泛使用的高级语言。
将高级语言程序编译为相应的机器语言的过程可能需要大量时间。解释器(interpreter)程序可以直接执行高级语言程序,而不必先将这些程序编译成相应的机器语言。尽管编译程序的执行速度比解释程序更快,但解释器在程序开发环境中更常用,因为增加新特性和纠正错误时经常需要重新编译程序。一旦程序开发完成,编译版本的运行最有效。