1.3.3 机器语言与高级语言
1.机器语言
机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。
一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如“操作码字段和地址码字段”,其中操作码指明了指令的操作性质及功能,地址码则给出了操作数或操作数的地址。
用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的含义。编程时,程序员得自己处理每条指令和每一数据的存储分配和输入、输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分烦琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是0和1的指令代码,直观性差,还容易出错。除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。
2.高级语言
根据程序设计语言与计算机硬件的联系程度将其分为两类:低级语言和高级语言。低级语言主要是机器语言和汇编语言。它的特点是与特定的机器有关,功效高,但使用复杂,难记忆,难书写,编程困难,可读性差,易出差错,可移植性极差。低级语言程序过度地依赖某种特定的机器或环境。
高级语言的表示方法要比低级语言更接近于待解问题的表示方法,大量引入数学表示形式,其特点是与具体机器无关,易学、易用、易维护、易移植。但计算机不能直接执行,需要翻译工具。一般说来,当高级语言程序翻译成相应的低级语言程序时,一个高级语言程序单位要对应多条机器指令,相应的编译程序所产生的目标程序往往功效较低。由于各种程序设计语言均有基于不同平台的编译或解释系统,将“高级语言”编译成不同的机器语言,而不是直接被机器执行。因此“高级语言”程序不再过度地依赖某种特定的机器或环境,且方便人们表述。从应用特点和对客观系统的描述两个方面可以对高级语言进一步分类。
从应用角度来看,高级语言可以分为基础语言、结构化语言和专用语言。
(1)基础语言也称通用语言。属于这类语言的有FORTRAN、Cobol、BASIC、Algol等。
(2)结构化语言是直接支持结构化控制结构,具有很强的过程结构和数据结构能力的高级语言。其中具有代表性的有Pascal、C、Ada语言等。
(3)专用语言是为某种特殊应用而专门设计的语言,通常具有特殊的语法形式。该类语言的应用范围狭窄,移植性和可维护性不如结构化程序设计语言。应用比较广泛的有APL语言、Forth语言、LISP语言等。
从描述客观系统来看,高级语言可以分为面向过程语言和面向对象语言。
(1)面向过程语言是以“数据结构+算法”程序设计范式构成的程序设计语言。
(2)面向对象语言是以“对象+消息”程序设计范式构成的程序设计语言。比较流行的面向对象语言有Delphi、Visual Basic、Java、C++等。