逻辑式语言,过程式语言,函数式语言?
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/07 13:29:17
逻辑式语言,过程式语言,函数式语言?
看一道软考体:
开发专家系统时,通过描述事实和规则由模式匹配得出结论,这种情况下适用的开发语言是___(19)___.
(19)A.面向对象语言 B.函,数式语言 C.过程式语言 D.逻辑式语言
选D,why?,解释一下上面3类语言的概念
看一道软考体:
开发专家系统时,通过描述事实和规则由模式匹配得出结论,这种情况下适用的开发语言是___(19)___.
(19)A.面向对象语言 B.函,数式语言 C.过程式语言 D.逻辑式语言
选D,why?,解释一下上面3类语言的概念
那当然是 D 了.你看看专家系统的历史就知道,那些逻辑式语言都是专为专家系统,自动证明这些应用设计的.例如著名的 prolog.逻辑式语言一般依据成熟的逻辑体系来设计,比如 first-order logic(用于 prolog),因为这样有几点好处:
1)可以进行严密的逻辑推理;
2)可以方便有效地定义 knowledge base,这在专家系统中很重要;
3)开发者不必考虑实现过程而只需考虑定义和结果.这符合专家系统的设计理念.
---------------------------------------------
其他三种语言,不是说就绝对不能用来做专家系统.但是你实现逻辑得自己写,而且可能还得自己写语义分析,而这些 D 都已经包括在语言中了.D 和其他的最大区别是其他几种语言只定义了语义,而没有实现过程.包括面向对象语言中的方法、函数式语言中的函数,这些都需要程序员自己写.但是 D 可以说是基于前面三种语言开发出来的,所有的过程是内定的,程序员完全不需要实现.前三种更基础,尤其是 B 和 C.
具体来说,C 是面向过程,例如 pascal,也就是程序被看成一个过程,自上往下一句一句地执行.
B 是面向函数,例如 c 语言,和棉线过程有些类似,但是出现了 函数 的概念,一般程序都有一个主函数才能运行,整个程序就是不同功能的函数一个调用一个这么进行下去.
A 是面向对象,例如 Java,这是近十年发展起来的语言,更进一步,它可以描述类,物体.而把属性、方法这些之前面向函数语言中的元素现在赋给了类.类是 A 最基本的组成部分,就像 函数 是 B 最基本的组成部分,是 C 最基本的组成部份一样.
---------------------------------------------
按 C、B、A 的顺序,语言动态性逐步增强,产生时间也越来越晚.各有各的特点,每种语言都有人在用,因为用处各不相同.D 更特别一点,领域针对性比较强.一般是在人工智能领域中用到.C 选项现在用的范围也比较小,一般可能当数学工具使用.
1)可以进行严密的逻辑推理;
2)可以方便有效地定义 knowledge base,这在专家系统中很重要;
3)开发者不必考虑实现过程而只需考虑定义和结果.这符合专家系统的设计理念.
---------------------------------------------
其他三种语言,不是说就绝对不能用来做专家系统.但是你实现逻辑得自己写,而且可能还得自己写语义分析,而这些 D 都已经包括在语言中了.D 和其他的最大区别是其他几种语言只定义了语义,而没有实现过程.包括面向对象语言中的方法、函数式语言中的函数,这些都需要程序员自己写.但是 D 可以说是基于前面三种语言开发出来的,所有的过程是内定的,程序员完全不需要实现.前三种更基础,尤其是 B 和 C.
具体来说,C 是面向过程,例如 pascal,也就是程序被看成一个过程,自上往下一句一句地执行.
B 是面向函数,例如 c 语言,和棉线过程有些类似,但是出现了 函数 的概念,一般程序都有一个主函数才能运行,整个程序就是不同功能的函数一个调用一个这么进行下去.
A 是面向对象,例如 Java,这是近十年发展起来的语言,更进一步,它可以描述类,物体.而把属性、方法这些之前面向函数语言中的元素现在赋给了类.类是 A 最基本的组成部分,就像 函数 是 B 最基本的组成部分,是 C 最基本的组成部份一样.
---------------------------------------------
按 C、B、A 的顺序,语言动态性逐步增强,产生时间也越来越晚.各有各的特点,每种语言都有人在用,因为用处各不相同.D 更特别一点,领域针对性比较强.一般是在人工智能领域中用到.C 选项现在用的范围也比较小,一般可能当数学工具使用.