background image

程序设计语言的层次体系

   程序设计语言分为低级语言和高级语言两类。“级”是指程序员与计算机对话的复杂程度。
例如,就查询语言来说,程序员

(经常是用户管理人员)只需要涉及到计算机“做什么”,而

不必涉及到计算机

“怎样做”。在高级语言中,程序员必须提供详细说明“做什么”和“怎样

”的指令,而软件工具将帮助简化程序员的工作。低级语言要求程序员详细说明由计算机

执行的每一级操作。在使用高级程序设计语言时,程序员不必记住数据在主存中的存储单元。
这是由系统自动做的。而在使用低级语言时,程序员必须在程序中提供相应的逻辑,以便监
视数据在主存中的物理位置。

   低级语言

    虽然人们用 COBOL、PASCAL 和 FORTRAN 来谈论程序设计,但是只有一种语言能够在
给定的计算机上执行。那就是所谓的机器语言。所有其他语言都要被编译

(翻译成机器语言),


且最终用机器语言来执行。
    机器语言是很繁琐的,因为指令(又称操作码或 OP 码)和运算数据的单元是用二进制(一

0 和 1)来表示的。符号语言(有时称作汇编语言或汇编级的语言)具有一个本质上与机器语

言一一对应的指令系统。汇编语言的优点是它用助记符号而不是用

0 和 1 来表示指令。例如,

汇编语言中直接用

“A”来表示“加”指令,而不用一串 0 和 1 来表示。

1970 年之前,机器级和汇编级语言常常用于应用程序的开发,特别用于系统软件

的开发。当时信息服务人员认为目标程序利用计算机的效率高。自那时以来使用高级语言无
论在发挥人或是计算机的效率上都超过了机器语言。由于这一原因,多数现行的程序设计都
是用高级语言来完成的。

   高级语言

    1.面向过程的语言
    面向过程的语言(POL)是极其灵活的,可以用来刻划几乎所有科学的和商业的过程。程序
顺序地编写指令,而系统则根据用户的规定进行处理。例如,工资系统就是使用

POL 来编

定的。除非由程序逻辑控制去做其他事情,否则程序中的每一条指令都是按顺序执行的。在
一个工资单生成系统中,执行程序指令的特定顺序取决于被处理的职工的工资计算方法

(是

按月发工资,还是按工时计算工资

)。对每个职工都要重复该程序流程的顺序。有三种主要的

POL:科学计算的、商用的以及多用途的。下面我们分别讨论每一种 POL。
    (1)科学计算的语言。科学计算的语言是代数或公式化的语言。这种语言是为了满足典型
的科学计算处理要求

(矩阵操作、精度计算以及其它方面)而设计的。第一个而且仍然是最为

流行的科学计算语言是

FORTRAN(公式翻译程序的缩写)。尽管在没有商业语言时(在计算机

不支持任何其它语言的情况下

)FORTRAN 已作为一种商用语言来使用了,但是 FORTRAN

的商业处理能力是有限的。
    APL 语言很快地抓住了一些用户(主要是工程师)。APL 是唯一使用带有专用符号的交互
式键盘来编写程序的语言。
    (2)商用语言。目前很流行的第一个商用语言是 COBOL(面向商业的公用语言的缩写)。它
是一种功能很强而又极为冗长的语言。发展

COBOL 语言的前提是:该语言的语句应该近似

于英语。有些程序员发现语言使用起来很麻烦。然而,

COBOL 语言尚处于方兴未艾的时期,

而且被广泛地接受。今天,人们正在继续对它进行改进。在若干年内,

COBOL 仍将是一种

流行的商用语言,但是使用该语言的相对百分比将会下降。

COBOL 最适合于具有循环处理

周期的环境

(例如打印工资支票)以及数据操纵量相当大的环境。

    美国国家标准研究所(ANSI)已经对 COBOL 和其他语言建立了标准。建立这些标准的目
的是使得在一台计算机上编写的程序可以移植到另一台

(即另一个厂商制造的)机器上去。不

幸的是,

ANSI 标准很少被遵循;因此,COBOL 程序只是部分可移植的。

    报表程序生成程序(RPG)可能是仅次于 COBOL 的最为流行的商业语言了。最初设计的

RPG 是在 IBM 公司数据录入级的计算机上使用的。它用于一些成批处理环境的小型商业工
作。

RPG 与其它 POL 不同之处在于程序员还必须通过选择所要求的程序设计特色来说明某

些处理要求

(例如何时打印小计记录的选择等等)。

    BASIC 设计者的最意图体现在该语言的名字上——初学者通用的符号指令码(Baginers 

All-Purpose Symbolic Instructional Code)。最初它被当作讲授程序设计的一个工具,
但是在这个

“初学者”语言的能力被充分扩充后,它变得如此流行,以致目前 BASIC 是小型

计算机系统上用于应用程序设计的一种上要语言。在大系统上也使用扩展

BASIC,但不是