4GL

http://wiki.ccw.com.cn/4GL
程序设计语言的划代问题远比计算机的划代复杂,目前所见到的划代观点有4种之多。这儿例举一种观点,他们将编程语言划分如下:1GL是汇编语言;2GL是高级程序设计语言,如FORTRAN,ALGOL,BASIC,LISP等;3GL是增强性的高级程序设计语言,如PASCAL,ALGOL68,FORTRAN77等;4GL是按计算机科学理论指导设计出来的结构化语言,如ADA,MODULA- 2,SMALLTALK-80等。

一般认为4GL具有简单易学,用户界面良好,非过程化程度高,面向问题,只需告知计算机“做什么”,而不必告知计算机“怎么做”,用4GL编程使用的代码量较之COBOL、PL/1明显减少,并可成数量级地提高软件生产率等特点。许多4GL为了提高对问题的表达能力,也为了提高语言的效率,引入了过程化的语言成分,出现了过程化的语句与非过程化的语句交织并存的局面,如LINC、NOMAD、IDEAL、 FOCUS、NATURAL等均是如此。


确定4GL的标准

  确定一个语言是否是一个4GL,主要应从以下标准来进行考察:

  (1)生产率标准:4GL一出现,就是以大幅度提高软件生产率为己任的,4GL应比3GL提高生产率一个数量级以上。

  (2)非过程化标准:4GL基本上应该是面向问题的,即只需告知计算机“做什么”,而不必告知计算机“怎么做”。当然4GL为了适应复杂的应用,而这些应用是无法“非过程化”的,就允许保留过程化的语言成分,但非过程化应是4GL的主要特色。

  (3)用户界面标准:4GL应具有良好的用户界面,应该简单、易学、易掌握,使用方便、灵活。

  (4)功能标准:4GL要具有生命力,不能适用范围太窄,在某一范围内应具有通用性。


4GL的不足

  虽然4GL具有很多优点,也有很大的优势,成为了目前应用开发的主流工具,但也存在着以下严重不足:

  (1)4GL虽然功能强大,但在其整体能力上却与3GL有一定的差距。这一方面是语言抽象级别提高以后不可避免地带来的(正如高级语言不能做某些汇编语言做的事情);另一方面是人为带来的,许多4GL只面向专项应用。有的4GL为了提高对问题的表达能力,提供了同3GL的接口,以弥补其能力上的不足。如 Oracle提供了可将SQL语句嵌入C程序中的工具PRO*C。

  (2)4GL由于其抽象级别较高的原因,不可避免地带来系统开销庞大,运行效率低下(正如高级语言运行效率没有汇编语言高一样),对软硬件资源消耗严重,应用受硬件限制。

  (3)由于缺乏统一的工业标准,4GL产品花样繁多,用户界面差异很大,与具体的机器联系紧密,语言的独立性较差(SQL稍好),影响了应用软件的移植与推广。

  (4)目前4GL主要面向基于数据库应用的领域,不宜于科学计算、高速的实时系统和系统软件开发。第四代语言的分类


  按照4GL的功能可以将它们划分为以下几类:

  1.查询语言和报表生成器

  查询语言是数据库管理系统的主要工具,它提供用户对数据库进行查询的功能。有的查询语言(如SQL)实际上还包括有查询、操纵、定义、控制四种功能。

  报表生成器(Report Generator)是为用户提供的自动产生报表的重要工具,它提供非过程化的描述手段让用户很方便地根据数据库中的信息来生成报表,如ADF 。

  2.图形语言

  图形信息较之一维的字符串、二维的表格信息更为直观、鲜明。我们在软件开发过程中所使用的数据流图、结构图、框图等均是图形。人们自然要设想,是否可以用图形的方式来进行软件开发呢?可见视屏、光笔、鼠标器的广泛使用为此提供了良好的硬件基础,Windows和X-Window为我们提供了良好的软件平台。目前较有代表性的是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、FORMAL、 APPLICATION FACTORY以及作者设计的OO-HLL等即属于这一类。这一类4GL中有许多是程序生成器(Program Generator),如LINC生成COBOL程序,FORMAL生成PASCAL程序等。为了提供专业人员建造复杂的应用系统,有的语言具有很强的过程化描述能力。虽然语句的形式有差异,其实质与3GL的过程化语句相同,如Informix-4GL和Oracle的PRO*C。

  4.形式规格说明语言

  软件规格说明是对软件应满足的需求、功能、性能及其它重要方面的陈述,是软件开发的基础。按照软件生存周期的阶段来划分,有软件的需求规格说明、功能规格说明、设计规格说明等。用来书写规格说明的语言称为规格说明语言。传统的规格说明语言是自然语言。在我国,主要使用现代汉语来表达软件的规格说明。自然语言为开发者和用户所熟悉,易于使用。但也会不可避免地将自然语言的歧义性、不精确性引入到软件规格说明中,从而给软件的开发和软件的质量带来隐患。形式的规格说明语言则很好地解决了上述问题,而且还是软件自动化的基础。从形式的需求规格说明和功能规格说明出发,可以自动或半自动地转换成某种可执行的语言(如高级语言)。需求规格说明和功能规格说明是面向问题、非过程化的,因此属于4GL。这一类语言有Z、NPL、SPECINT以及作者设计的JAVASPEC。设计规格说明语言由于包含了大量过程化成分,原则上不应划入4GL。

posted @ 2008-06-18 13:42  treemon  阅读(1487)  评论(0编辑  收藏  举报