作者csfgsj (仙人异路)
看板Soft_Job
标题[情报] 有关第四代语言分析的好文
时间Fri Jan 15 10:17:03 2016
第四代语言
虽然本人是不太用,号称XX及XX虫的都能用的程式语言
主要的工作领域也不在这边
不过版上好像有不少第四代语言的用户,希望还是要对它们有清楚的认识才好
以下是原文
摘要:
第四代语言(Fourth-Generation Language, 以下简称4GL)的出现是出於商业需要。
4GL这个词最早是在80年代初期出现在软体厂商的广告和产品介绍中的。
因此,这些厂商的4GL产品不论从形式上看还是从功能上看,差别都很大。
但是人们很快发现这一类语言由於具有“面向问题”、“非过程化程度高”等特点,
可以成数量级地提高软体生产率,缩短软体发展周期,因此赢得了很多用户。
1985年,美国召开了全国性的4GL研讨会,
也正是在这前後,许多着名的电脑科学家对4GL展开了全面研究,
从而使 4GL进入了电脑科学的研究范畴。
其原意是非过程化程式设计语言,是针对以处理过程为中心的第三代语言提出的,
希望通过某些标准处理过程的自动生成,使用户只说明要做什麽,
而把具体的执行步骤的安排交软体自动处理。
以下全文及出处
http://baike.baidu.com/view/495763.htm
(简体字,我也没办法,查到的繁体字文章都是胡X八x)
--
1F:推 LaPass: 我还在想说怎麽有面向问题至个辞,原来来源是简体 01/15 10:27
2F:→ LaPass: 看完了,这篇也没太大的意义。 01/15 10:38
3F:→ csfgsj: 修行看个人~~ 01/15 11:26
4F:→ y3k: 这种叫做应用 不是程式了吧 01/15 11:42
5F:→ y3k: 未来至少百年内一定还是以物件导向为主 这是人类逻辑的终点 01/15 11:43
6F:→ csfgsj: XD~~ y 大真是太好笑了,不过我正在吃饭,没空 01/15 12:13
7F:推 Clangpp: 所以又要有战文了吗?? (爆米花) 01/15 12:38
8F:推 shortoneal: 抖面大师准备出击 01/15 12:48
该文是一篇非常高明,纵贯程式语言古今的好文章,精确的点到所有的现象
「面向问题」刚好是一个很重要的关键,它相对於「面向过程」
如果还是不懂,我的注解是:
「面向问题」就是「面向需求」,相对於「面向过程」就是「面向机械」
它们是前三代程式语言与第四代程式语言的分界点
第一代语言:机械语言
第二代语言:组合语言
第三代语言:高阶语言,如C
以上三个都是「面向机械」,写程式时以CPU的运作角度来考虑、实作的语言
第四代程式语言:
面向需求:写程式时只考虑我的需求,描述我的需求,
而不用知道、不必考虑CPU如何运作运转
语言的功能只是在於描述需求
例如:
结构、型态、性质描述语言
Regular Expression:字串型态描述
HTML:图形版面配置描述语言
XML、*.inf:树状资料结构描述语言
HDL:硬体结构描述语言
组态参数、组态档案
作业描述语言
SQL:资料库的操作、查询
Makefile:制程鱼骨图结构描述语言
Script
描述语言需要转换过程,即需求转实作的工具,
将描述语言码转换成处理器实作语言码,才可被CPU执行、实作
Ex:
Android App:设计从Layout 开始,一定是先填这个资料结构:main.xml
main.xml:Layout需求描述码:面向需求、面向问题
会被IDE转换成 R.java :面向实作码(虽然还不是很纯正)、面向过程
至於OO,只算是众多第四代程式语言中的一支
不反对别人用OO,优缺点自己要知道
只不过是有关OO的胡说八道实在是太多了
在我的眼中的所谓的「物件导向」,其实只是个广告术语
(让你感觉它是一个很容易的东西,跟玩乐高一样简单,骗你进来玩)
实际探究其内容,真正符合其性质的命名应该为「框架导向」
跟物件一点关系都没有
9F:推 Killercat: ....与其在这边钻研句读,写点东西出来玩玩如何 =_= 01/15 16:17
我拿人薪水每天写 Code、Debug,还能怎样
我倒觉得这些都是枝微末节,反射动作,花不了什麽脑筋
反而觉得如何处理事情、看事情的哲学才是重点
这些才是我处理问题能力的根源
如果你有伟大的计画,或许我可以给些看法
有发财的机会,版上大部分的人都会有兴趣
你想写什麽程式?
10F:推 bab7171: 这不就是把code模组化,然後用个字典给人查 01/15 16:44
11F:→ bab7171: 像积木一样拼一拼 01/15 16:45
12F:→ fgh81113: 拼图写程式已经有拉 01/15 16:58
13F:→ fgh81113: 语意不清重说 拼图程式已经有了 01/15 16:59
Ba 大说的没错,这也是厂商希望给的你的思维面向
也就是结构的面向,一块一块拼图,就是一个一个的Class 物件
哈哈哈!陷阱就在这,你逃不出去了
根据以上的说明,请问这是
「面向问题」?还是「面向过程」?
「面向需求」?还是「面向机械」?
它是在描述你的需求?还是在描述程序的执行过程?
答案:都不是
一旦你的思维脱离这两样东西,就失去解题的方向了
以後只能靠背答案过日子
14F:推 art1: 好像战不起来 01/15 19:23
15F:推 wesley234: 难道都已被收服? 01/15 19:41
16F:推 bab7171: 这样变的主要就是目的带程式。 01/15 20:36
17F:→ bab7171: 现有个需求输入关键字,只要把要处理文件丢到程式里,程 01/15 20:36
18F:→ bab7171: 式会自动带相关function. 01/15 20:36
19F:→ lovdkkkk: 谁说只有那几种面向啊, 人的面向是无限的 (挺 01/15 21:20
目的带程式
You Got it ~ 这就是第四代程式语言的特徵
能让您不去涉入实作的细节,程式码就能快速的生出来
这时不用太高深的学问,不用太辛苦,傻瓜跟懒虫都能快速产生程式
我常感觉用第四代程式语言的开发者,似乎都不怎麽谈领域知识
後来发现,其实也不是没有领域知识,只是四代程式语言及其框架所产生的程式
都是固定大众化、定型化的程式,没有实作细节,实在也没有什麽领域知识好谈
那些设计框架的人,早就将你的使用情境设定好了
框架的套用者,其实能做的改变非常有限,也无法非常精细
要做出重量级的程式自然也就不太可能了
更可怕的是,大家做出来的程式看起来都差不多
或者框架能做出来的程式,早就被别人做过了
没办法,框架就是这样的东西,尤其是OO这种硬框架体系
除非自己从头做框架,但这样乾脆不要框架,事情会单纯许多
在定型化框架的环境中,自己再去定硬框架,通常下场都不会太好
@lo 大
要不要谈谈第五代程式语言,它就是使用自然语言
不限格式,可用无限的面向来产生程式
我的老板就时常用第五代程式语言来开发程式
如有程式的需要,他只要说:「把程式弄出来」(用口说的就行)
然後程式就会自动产生出来,只不过程式产生的过程还是需要人工作业
全自动化目前还不行就是了
※ 编辑: csfgsj (111.243.179.203), 01/15/2016 21:39:19