首页 理论教育程序设计语言的发展历程

程序设计语言的发展历程

【摘要】:程序设计语言发展到目前,共经历了三代,它们分别是机器语言时代、汇编语言时代和高级语言时代。表7-1 机器语言程序2.汇编语言对程序设计人员来说,用机器语言书写程序的最大困难是把算法转换为由0、1符号编码表示的指令。汇编语言是程序设计语言发展的第二代。FORTRAN语言受到了程序设计人员的一致好评。

程序设计语言发展到目前,共经历了三代,它们分别是机器语言时代、汇编语言时代和高级语言时代。

1.机器语言

计算机刚发明时使用的程序设计语言是机器语言。机器语言的程序由指令组成,机器语言的特点是所有指令的记号都采用符号0、1的编码组成。我们在第3章中较详细地介绍了机器指令的表示方法,并给出了一个机器语言形式的程序例子。对比机器语言程序的例子和本章将要讨论的高级语言程序的例子,可以发现,机器语言每条指令的功能很弱。因此,用机器语言书写程序时,程序设计人员不仅非常费力,而且编写程序的效率还非常低。另外,不同计算机的机器语言是不相同的,因此,用机器语言书写的程序在不同的计算机上不能通用。这样,当要把一个程序在另外类型的一个计算机系统上运行时,就需要重新编写程序代码。

第3章我们曾讨论过一个简单的实现两个整数值相加功能的机器语言程序,其十六进制码格式的机器语言程序如表7-1所示。

表7-1 机器语言程序

2.汇编语言

对程序设计人员来说,用机器语言书写程序的最大困难是把算法转换为由0、1符号编码表示的指令。因此,人们就试图用容易记忆和交流的符号来分别表示机器语言中的操作码和操作数,这就形成了汇编语言。汇编语言出现于20世纪50年代初期。汇编语言是程序设计语言发展的第二代。

机器语言中用术语机器指令来表示机器语言中某个特殊的操作。类似地,汇编语言中用术语指令来表示汇编语言中某个特殊的操作。汇编语言和机器语言基本上是一一对应的。也就是说,对大多数汇编语言中的指令来说,在机器语言中都存在一条功能相同的机器指令。例如,假设汇编语言中用LOAD表示取数操作,对应机器指令的操作码为10;用STORE表示存数操作,对应机器指令的操作码为20;用ADD表示加法操作,对应机器指令的操作码为30;用HALT表示结束程序运行操作,对应机器指令的操作码为00。再假设汇编语言中用X表示内存单元地址20,用Y表示内存单元地址21,用SUM表示内存单元地址22,则上述实现两个整数值相加功能的汇编语言程序如表7-2所示。

表7-2 汇编语言程序

显然,和使用机器语言编写程序比较,使用汇编语言编写程序要容易许多。当然,计算机不能直接理解和执行用汇编语言编写的程序,需要进行转换。因为汇编语言的指令和机器语言的机器指令存在对应关系,所以这样的转换并不困难。汇编程序就是完成这种转换工作的一种专门的程序。汇编程序是把用汇编语言编写的程序(术语称为源程序)翻译为等价的机器语言程序(术语称为目标程序)的一种程序。(www.chuimin.cn)

现在程序设计语言已发展到了第三代的高级语言,对大多数软件设计问题来说,使用高级语言编写程序是一种更为方便的选择。但是,由于在把用高级语言编写的程序翻译为等价的机器语言程序的过程中,不一定能达到计算机运行效率最高,所以,在一些特定的软件设计问题中,仍然使用汇编语言编写程序。例如,目前大多数外部设备的驱动程序都是用汇编语言编写的。

3.高级语言

虽然用汇编语言编写程序较用机器语言编写程序方便了许多,但用汇编语言编写程序仍然不是一件容易的事情。对于编写程序的人来说,如果能用类似于表示算法的程序设计语言编写程序,那么程序编写效率将大幅提高。高级程序设计语言(简称高级语言)就是这样一种计算机语言。高级语言是程序设计语言发展的第三代。

我们在第7章讨论了伪码形式的算法表示。伪码用非常接近自然语言的描述形式来描述算法。高级语言是一种在伪码形式的算法表示基础上的计算机程序设计语言,因此,和汇编语言相比,高级程序设计语言的抽象度高,和具体计算机的相关度低(或没有相关度),求解问题的方法描述直观。由于高级语言的这些特点,所以,用高级语言设计程序的难度较以前大大降低。

最早出现的高级语言是FORTRAN语言。1957年,巴克斯领导的研究小组开发出了FORTRAN语言,其名字是FORmula TRANslator(公式翻译)的缩写。FORTRAN语言允许程序设计人员直接把计算公式书写在程序中,这就大大简化了程序设计的复杂性,提高了程序设计的效率。而把用FORTRAN语言编写的程序转换成机器语言程序的任务由一个称为FORTRAN语言编译程序的程序来完成。FORTRAN语言编译程序的功能在某种意义上类似于汇编程序,只是由于FORTRAN语言和机器语言的对应关系复杂,所以FORTRAN语言编译程序较汇编程序复杂许多。

FORTRAN语言受到了程序设计人员的一致好评。FORTRAN语言的成功为高级语言的发展奠定了基础。随着软件技术的发展,人们对FORTRAN语言不断进行改造和更新。1958年,FORTRAN被修订为FORTRANⅡ,几年后又被修订为FORTRANⅣ。不同的FORTRAN语言软件开发商实现了FORTRAN语言的不同版本,这些版本之间互不兼容,这给程序的共享和程序的移植造成了很大的困难。1966年,FORTRANⅣ以FORTRAN 66的名称成为一种标准。此后,FORTRAN语言的标准又两度更新FORTRAN 77和FORTRAN 90。

随着FORTRAN语言的成功和不断发展,又有许多高级程序设计语言被提出,如ALGOL语言、COBOL语言等,在程序设计语言几十年的发展历程中,曾经推出的高级语言不下百种。随着程序设计语言的不断更新和发展,许多高级语言由于先天的不足,或后天没有软件商对其进行持续的更新和改造,所以,许多高级语言逐渐被市场淘汰,如ALGOL语言目前就不再被使用。

高级语言的出现大大推动了软件的发展。高级语言的出现也是目前计算机应用非常广泛的一个重要原因。