第五代编程语言

第五代编程语言(5GL)是一种期望计算机能自动化问题求解的意图,基于问题所给定的某些限制,交由程序来处理而不需以程序员再投入人力开发程式。多数基于限制式和逻辑推演的编程语言,以及其它一些宣告式的语言,或可归类为第五代编程语言。

历史 编辑

虽然第四代编程语言是为了构建特定的程序而设计的,但第五代语言的设计目的是使计算机在没有程序员的情况下,解决特定的问题。这样,使用者只要提出哪些问题待解,而问题的可行解要满足哪些条件;而不必再思考如何实作程序或算法来求解。第五代语言主要用于人工智能研究。PrologOPS5英语OPS5Mercury是第五代语言的例子[1]

这类型的语言很多源自于Lisp机器,以 Lisp 编程语言开发,例如ICAD英语ICAD (software)。而后有许多框架语言英语Frame language,如KL-ONE英语Frame language

在20世纪80年代第五代编程语言被认为是未来的方式,有些人预测除了低阶机器组合语言之外,第五代编程语言将取代所有其它高阶语言进行系统开发。值得一提的是从 1982年到了 1993年,日本[2][3]第五代计算机系统专案上投入了大量研究和资金,希望能够利用这些工具设计一个庞大的计算机网络。但是随着更大的专案建立,其中方法的缺陷变得更加明显。事实证明给定一组问题限定的约束,能导出一个有效果和有效率的算法来解决这个问题,本身就是一个非常困难的问题。关键步骤到21世纪初叶还无法完全不需人工介入而自动化,仍需要人类程序员的对问题的理解、以及卓越的洞察力。

常见的误解 编辑

过去偶尔有软件供应商对他们产品的行销策略,宣称是以5GL编程语言开发的成果。这些软件大多数实际上只是具有更进阶自动化的程度,和撘配专业知识库的4GL编程产品。由于20世纪80年代的炒作逐渐消失,相关的专案最终全部被放弃,对5GL编程语言的认知也降低水平了,这又开启供应商的门路,重新使用这个术语来推销他们的新产品,但因为此名称的涵义与认知已经转化,在21世纪也较少引发当代程序员之间的争议了。

参考资料 编辑

  1. ^ E. Balagurusamy, Fundamentals of Computers, Mcgraw Hill Education (India), 2009, ISBN 978-0070141605, p. 340
  2. ^ Richard Grigonis. FIFTH-GENERATION COMPUTERS. [2008-03-05]. (原始内容存档于2018-01-03). 
  3. ^ ALP. Association for Logic Programming (ALP). [2008-03-05]. (原始内容存档于2021-02-05). 

另见 编辑