程序设计语言的历史回顾与分类 下载本文

序终止即消失),也可操纵数据库中持久对象,且可混合在一个程序中,如C++、C02、OPAL。

按实现计算方式

编译型语言 用户将源程序一次写好,提交编译,运行编译得目标码模块。再通过连接编辑、加载成为内存中可执行目标码程序。再次运行目标码,读入数据得出计算结果。大多数高级程序设计语言属于这一类。

解释型语言 系统的解释程序对源程序直接加工。一边 ,一边执行。不形成再次调用它执行的目标码文件。大多数交互式(INTERACTIVE)语言、查询命令语言采用解释型实现。典型的例子有BASIC,LISP,PROLOG,APL,SHELL,SQL。 它们的特点是所用 空间小,反映快,但运行效率慢。

按使用方式

交互式语言 程序在执行过程中程序可陆续添加和修改,以对话方式实现计算。一般是解释型的。由于程序设计支持环境的发展,交互式语言可方便为用户调用各环境工具,有日益发展的趋势。

非交互式语言 多数编译型语言的目标码文件执行期间,程序员不能干预,只能在执行完毕再修改。

按程序设计范型

单范型语言 范型即程序组织和实现计算的模式

命令式语言 计算实现的模型如果按冯·诺依曼原理强制改变内存中的值叫命令(或译指令、强制IMPERATIVE)程序状态的变化没有一定规则,程序逻辑大了就很难查错,很难调试,不易证明其正确。组织程序和范型即:算法过程+数据结构。到目前软件开发主导语言仍是命令式语言。近代命令式语言增加了模块强制类型检查、抽象数据类型、类属等机制可开发较安全、可靠的大程序。

面向对象语言 将数据和其上的操作封装于对象中,对象归属于类对象,类对象有继承,实例对象上的操作可动态决定。程序是相互发消息通信的对象集合。代表语言有SIMULA-67、SMALLTALK。

数据流语言 传统过程语言中以程序控制保证程序功能实现,数据是分散的,为控制流服务。数据流语言以数据对象为核心加工过程为其服务。藉以提高运算速度。这种语言的程序设计方法学模型是基于数据流。数据流语言有VAL和EUC LID。 函数式语言 程序对象是函数及高阶函数,组织程序的范型是函数定义及引用。代表语言有LISP FP ML MIRANDA。 逻辑式语言 程序对象是常量,变量和谓词、组织程序的范型是定义谓词的公式,并构造满足谓词的事实库和约束关系库。代表语言有PROLOG。

函数式和逻辑式语言不需强制求值故称施用式语言(APPLICATION),又因无需涉及求值过程,只定义“求什么?有什么(函数)关系”故也叫声明式(DECLARATIVE)语言。 多范型语言

一个程序设计语言不止支持一种程序设计范型,最初为将一个常用的语言扩充具有另一范型的能力,有目的研究五种范型号组合是NAIL(1983)和G(1986) 。

并发程序设计应该说也是一种范型,因为它在组织程序时程序执行的非顺序性和各成分相互通信的时间要求单主机上顺序程序是不同的。但在各程序成分内的组织与设计与该种语言顺序部分没什么不同,即各种范型语言均向并发语言发展如ADA CONCURREAT SMALLTALK CONCURRENTPROLOG。并发语言必然是顺序部分的超集。本书在一般情况下不把它们作为单独的范型。

按断代划分

由于硬件中从真空管到超大规模集成电路已经五代了。程序设计语言的断代当然也要按自己的特征:

第一代语言 1GL 50年代

主要牲是面向机器,离不开地址码,操作码,存储空间分配。机器语言、汇编语言即是。

第二代语言 2GL 60年代

主要特征是脱离机器面向算法过程的高级语言。有变量、赋值、子程序、函数调用概念,少量基本数据类型,有限的循环层次(三层至多 层)。一般无递归调用。FORTRAN、BASIC、 ALGOL 60 、COBOL即是。

第三代语言 3GL 70年代

主要特征是结构化控制结构,块级控制。有作用域和可见性概念。有丰富的数据类型,除基本类型增加了布尔、集合、字符类型而外,用户可自行定义结构数据,枚举数据,还可通过指针定义动态数据。第三代语言的典型代表是PASACL。第三代晚期,出现了程序(或模块)定义和实现显示分离特征:规格说明(SPECIFICATION)只主义程序和功能,体(BODY)是规格说明的过程实现。ADA和MODALA-2就是典型例子。

第四代语言 4 GL 80年代

主要特征是极端用户友好。最终用户(END USER)只经过几天甚至几小时训练即可上机。它是声明式、交互式、非过程化语言。依赖于环境支持,一般都要有大的数据库。编制一个程序要比第三代语言所花时间少一个数量级。但由于把许多编程工作放在支持系统中自动完成,往往只有某一方面的功能,所以到目前为止还没有通用的第四代语言。如LOTUS1-2-3只适合表格处理。DBASE适合数据库查询和应用。MANTIS、IOEAL、EATURAL、ARRLICATION FACTORY声称凡COBOL程序都能编,但也仅限于数据处理。