时间:2022-12-15 00:30:01 | 来源:信息时代
时间:2022-12-15 00:30:01 来源:信息时代
第4代语言 : 4GL是以数据库管理系统所提供的功能为核心,进一步构造开发高层软件系统的开发环境,如报表生成、多窗口表格设计、菜单生成系统、图形图像处理系统和决策支持系统等。它提供了功能强大的非过程化问题定义手段,用户只需告知系统做什么,而无需说明怎么做,因此可显著提高软件生产率。
第4代语言来自于商业需要。20世纪80年代初期,人们发现这一类语言具有“面向问题”、“非过程化程度高”等特点,可以成数量级地提高软件生产率,缩短软件开发周期,因此4GL产品赢得了很多用户。1985年,美国召开了全国性的4GL研讨会,也正是在这前后,许多著名的计算机科学家对4GL展开了全面研究,4GL进入了计算机科学的研究范畴。进入90年代,随着计算机软硬件技术的发展和应用水平的提高,大量基于数据库管理系统的4GL商品化软件已在计算机应用开发领域中获得广泛应用,成为面向数据库应用开发的主流工具,如Power Builder、Delphi、Visual BASIC等。
由于近代软件工程实践所提出的大部分技术和方法并未受到普遍的欢迎和采用,软件供求矛盾进一步恶化,软件的开发成本日益增长,导致了所谓“新软件危机”。这既暴露了传统开发模型的不足,又说明了单纯以劳动力密集的形式来支持软件生产,已不再适应社会信息化的要求,必须寻求更高效、自动化程度更高的软件开发工具来支持软件生产。4GL就是在这种背景下产生并发展的。
1. 4GL的衡量标准
确定一种语言是否是4GL,主要考察以下四个标准:
(1)生产率标准: 4GL应比3GL提高生产率在一个数量级以上。
(2)非过程化标准: 4GL是面向问题的,即只需告知计算机“做什么”,而不必告知计算机“怎么做”。
(3)用户界面标准:4GL具有良好的用户界面,简单、易学、易掌握,使用方便、灵活。
(4)功能标准: 4GL要具有生命力,适用范围不能太窄,在某一范围内应具有通用性。
2.4GL的不足
虽然4GL具有很多优点和优势,成为目前应用开发的主流工具,但也存在着以下一些不足:
(1)整体功能范围有限: 4GL功能强大,但就其整体功能与3GL相比有一定的差距。这是语言抽象级别提高以后不可避免地带来的(正如高级语言不能做某些汇编语言做的事情);另一方面是人为带来的,许多4GL只面向专项应用。有的4GL为了提高对问题的表达能力,提供了与3GL的接口。
(2) 4GL系统对硬件要求高: 4GL由于其抽象级别较高的原因,不可避免地带来系统开销庞大,运行效率低下(正如高级语言的运行效率没有汇编语言的运行效率高一样),对软硬件资源要求较高。
(3)开发出应用软件的可移植性低: 由于缺乏统一的工业标准,4GL产品繁多,用户界面差异很大,与具体的机器联系紧密,语言的独立性较差,影响了应用软件的移植与推广。
3.4GL分类
按照4GL功能可以将它们划分为以下几类:
(1)查询语言和报表生成器: 查询语言是数据库管理系统的主要工具,它为用户提供对数据库进行查询的功能,例如SQL查询语言提供对数据库的查询、操纵、定义、控制等多种功能。报表生成器(report generator)是为用户提供的自动产生报表的重要工具,它提供非过程化的描述手段让用户方便地根据数据库中信息来生成报表。
(2)图形语言: 目前较有代表性的是Gupta公司开发的SQL Windows系统,它以SQL语言为引擎,让用户在屏幕上以图形方式定义用户需求,系统自动生成相应的源程序,用户可修改或增加相应的源程序,从而完成应用开发。
(3) 应用生成器: 应用生成器(application generator)是一类综合的4GL工具,它用来生成完整的应用系统。应用生成器让用户不必使用多个软件,而只用这样一个综合工具来实现多种功能。应用生成器按其使用对象可以分为交互式和编程式二类。属于前者的有FOCUS、RAMIS、MAPPER、UFO、NOMAD、SAS等。它们服务于维护、准备和处理报表,允许用户以交互方式在终端上创建文件、报表和进行其他的处理。目前较有代表性的有Power Builder和Oracle的应用开发环境。Oracle提供的SQL*FormS、SQL*Menu、SQL*Reportwriter等工具建立在SQL语言基础之上,借助了数据库管理系统功能,让用户交互式地定义需求,系统生成相应的屏幕格式、菜单和打印报表。编程式应用生成器是为建造复杂系统的专业程序人员设计的,如NATURAL、FOXPRO、MANTIS、IDEAL、CSP、DMS、INFO、LINC等即属于这一类。这一类4GL中有许多是程序生成器(program generator),如LINC生成COBOL程序,formAL生成PASCAL程序等。为了支持专业人员建造复杂的应用系统,有的语言具有很强的过程化描述能力。虽然语句的形式有差异,其实质与3GL的过程化语句相同,如Informix—4GL和Oracle的PRO*C。
(4)形式规格说明语言: 软件规格说明是对软件应满足的需求、功能、性能及其他重要方面的陈述,是软件开发的基础。按照软件生存周期的阶段来划分,有软件的需求规格说明、功能规格说明、设计规格说明等。用来书写规格说明的语言称为规格说明语言。传统的规格说明语言是自然语言。自然语言为开发者和用户所熟悉,易于使用,但也不可避免地会将自然语言的歧义性、不精确性引入到软件规格说明中,从而给软件的开发和软件的质量带来隐患。“形式的规格说明语言”则很好地解决上述问题,而且还是软件自动化的基础。从形式的需求规格说明和功能规格说明出发,可以自动或半自动地转换成某种可执行的语言(如高级语言)。需求规格说明和功能规格说明是面向问题、非过程化的,因此属于4GL。这一类语言有Z、NPL、SPECINT等。设计规格说明语言由于包含大量过程化成分,原则上不应划入4GL。
4. 4GL的发展
在今后相当一段时期内,4GL仍然是应用开发的主流工具。但其功能、表现形式、用户界面、所支持的开发方法将会发生一系列深刻的变化。主要表现在以下几个方面:
(1) 4GL与面向对象技术将进一步结合。面向对象技术集数据抽象、抽象数据类型和类继承为一体,使软件工程公认的模块化、信息隐蔽、抽象、局部化、软件重用等原则在面向对象机制下得到充分的体现。它追求自然地刻画和求解现实世界中的问题,即追求问题结构与软件结构的一致性,使得开发人员可以把主要精力放在系统一级上,按照自己的意图创建对象,并将问题映射到该对象上。面向对象技术所追求的目标和4GL所追求的目标实际上是一致的。目前有代表性的4GL普遍具有面向对象的特征,但这些特征都很有限。所采用的实现技术往往是在传统的关系型数据库管理系统的基础上再加上一层面向对象的开发工具,而这层工具未能完全与数据库管理系统有机结合在一起,对抽象数据类型和继承性的表达也很有限,极大地限制了面向对象开发技术对4GL的支持。随着面向对象数据库管理系统和/或对象-关系数据库管理系统研究的深入,建立在其上的4GL将会出现在应用开发者面前。
(2) 4GL将全面支持以Internet为代表的网络分布式应用开发。随着Internet为代表的网络技术的广泛普及,4GL又有了新的活动空间。出现类似于Java,但比Java抽象级更高的4GL不仅是可能的,而且是完全必要的。
(3) 4GL将出现事实上的工业标准。目前4GL产品很不统一,给软件的可移植性和应用范围带来了极大的影响。但基于SQL的4GL已成为主流产品。随着竞争和发展,有可能出现以SQL为引擎的事实上的工业标准。
(4) 4GL将以受限的自然语言加图形作为用户界面。目前4GL基本上还是以传统的程序设计语言或交互方式为用户界面的。前者表达能力强,但难于学习使用;后者易于学习使用,但表达能力弱。在自然语言理解未能彻底解决之前,4GL将以受限自然语言加图形作为用户界面,以提高用户界面的友好性。
(5) 4GL需要数据库管理系统的继续支持。4GL的主要应用领域是商务。商务处理领域中需要大量的数据,没有数据库管理系统的支持是很难想像的。事实上大多数4GL建立在某种数据库管理系统基础之上,是数据库管理系统功能的扩展。
(6) 4GL要求软件开发方法发生变革。4GL的发展将促进软件开发方法的变迁和发展。预计基于构件的开发方法将居主导地位,再配之以一些辅助性的方法,如快速原型方法、并行式软件开发、协同式软件开发等,以加快软件的开发速度,提高软件的质量。