函数式和逻辑式语言不需强制求值故称施用式语言(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程序都能编,但也仅限于数据处理。
第五代语言 5GL 90年代
习惯上把用于人工智能程序表达的语言称之为五代机语言或五代语言。实际上LISP早基1957年就设计出来了。它是对抽象的符号进行表处理而不是象ALGOL和FORT RAN那样算出数值,所以一开始就用于数学定理证明之类的智能程序。70年代出现的PROLOG更是为智能推理而设的,它们都是小语言,而早期教师解释执行的。它们只用一种程序设计模型在人工智能方向试探。它们的特点都是在上层按某种模式去开发程序,下层实现则千篇一律的笨办法(例如,PROLOG用的是递归树查找的匹配方式)。于是,有人研究LISP机、PROLOG机,下层直接是推理单元而不必用冯·诺曼机去模拟推理、找出匹配。但世界并不是逻辑的,也不是函数的,在非它所长的智能应用中LISP机、PROLOG 机笨拙无比。所以五代机及其语言目前只能说有了萌芽。真正五代机通用语言是什么,目前还很难预言。
还有一种说法是把除正文语言而外的其他媒体语言称为5GL。从断代是革命而不是改良的角度多媒体语言确实应该称做第五代。但目前仅仅是把正文与其他媒体可等价的部分用其他媒体表达,从而简化程序设计(它还是基于正文的),如前所述,各媒体有其自身不可等价性(如声调、声音速度、强度带来的语义反忌), 程序设计? 目前尚不可知。 小结
本章按年代给出了程序设计语言发展的各阶段,程序设计语言研究最主要是高级程序设计语言。它的出现,奠基研究、完善、向对象式发展,90年代只给出 个可能的发展方向,并发式、多媒体(5GL)、4GL完善、规格说明式、数据库程序设计语言、多范型式。
可以按多种准则为程序设计语言分类。一个语言可以在多个类别,本书按对机器依赖程度、应用领域、实现计算方式、使用方式、编程范型和断代划化, 个角度分类。所指语言一般至少在某个领域是比较通用的。特别是专门的语言不是本书研究范围。
历史上较有影响的语言是:
FORTRAN,COBOL,ALGOL-60,PL/1,LISP,ALGOL-68,BASIC,PASCAL,SIMULA,C,ADA,SMALLTALK,PROLOG,ML,C++,SQL。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库程序设计语言的历史回顾与分类(7)在线全文阅读。
相关推荐: