作者Attilax
编程语言分类:(按代际)
/
第一代:机器语言,汇编语言;
第二代:面向过程语言:c语言等
第三代:面向对象语言:c++,java等
第四代:面向用户语言 sql,html,css,工作流(图形化编程语言),代码生成器
其实应该还有脚本语言,动态语言,应该是三代半语言了.. PHP,RUBY,AHK,AAUTO..按键精灵等
关于第四代语言
/
第四代语言(Fourth-Generation Language, 以下简称4GL)的出现是出于商业需要。4GL这个词最早是在80年代初期出现在软件厂商的广告和产品介绍中的。因此,这些厂商的4GL产品不论从形式上看还是从功能上看,差别都很大。但是人们很快发现这一类语言由于具有“面向问题”、“非过程化程度高”等特点,可以成数量级地提高软件生产率,缩短软件开发周期,因此赢得了很多用户。1985年,美国召开了全国性的4GL研讨会,也正是在这前后,许多著名的计算机科学家对4GL展开了全面研究,从而使 4GL进入了计算机科学的研究范畴。
第四代语言特点:
///
.提供了功能强大的非过程化问题定义手段,用户只需告知系统做什么,而无需说明怎么做,因此可大大提高软件生产
前面几代都需要编程都指出指出怎么做(运行步骤),第4代在一定程度上只需要说明做什么(目的),不需要写出怎么做的过程。
工作流(图形语言)
报表生成器(Report Generator)是为用户提供的自动产生报表的重要工具,它提供非过程化的描述手段让用户很方便地根据数据库中的信息来生成报表,如ADF
应用生成器(Application Generator)程序生成器(Program Generator),)
受限的自然语言加图形作为用户界面
一般认为4GL具有简单易学,用户界面良好,非过程化程度高,面向问题,只需告知计算机“做什么”,而不必告知计算机“怎么做”,用4GL编程使用的代码量较之COBOL、PL/1明显减少,并可成数量级地提高软件生产率等特点。许多4GL为了提高对问题的表达能力,也为了提高语言的效率,引入了过程化的语言成分,出现了过程化的语句与非过程化的语句交织并存的局面,如LINC
(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主要面向基于数据库应用的领域,不宜于科学计算、高速的实时系统和系统软件开发。