王朝百科
分享
 
 
 

逻辑程序设计

王朝百科·作者佚名  2012-04-07  
宽屏版  字体: |||超大  

介绍逻辑程序设计将逻辑直接作为程序设计语言并将计算作为受控推理的一种程序设计技术。

沿革1972年法国科莫劳埃小组实现了第一个逻辑程序设计语言PROLOG。1974年以后R.科瓦尔斯基进一步阐明了PROLOG的理论基础,并系统地发展了逻辑程序设计的思想。对于传统的程序设计来说,算法的逻辑意义往往被程序复杂的控制成分所掩盖,使程序的正确性难以得到证明。而且通常的高级程序设计语言属于过程性语言,需要在程序执行前详细规定运行步骤。科瓦尔斯基对传统的算法或对用通常高级语言编写的程序提出了一个著名的分析公式,即算法=逻辑+控制。其基本思想是要从根本上改变程序设计的方法:用户只需要编写程序的逻辑部分(逻辑程序设计之名由此而来),而系统中的解释程序则实施控制部分的职能。

优点这种将逻辑与控制分开的方法具有下列的优点:①可以在控制部分设计之前不断改进逻辑程序。②可以改进控制部分而无需变动逻辑程序本身。③可以从程序说明中生成逻辑程序,加以验证和变换,而无需考虑其控制部分。④只需在逻辑程序中规定目标和实现这些目标的现有条件,也就是只需告诉系统做什么(What to do),至于如何执行也就是说怎样做 (How to do),则由系统的控制部分,即解释程序处理解决。

现状现行逻辑程序的基本语句属于一阶谓词演算的一个子集,HORN子句集。HORN子句的一般形式为:A1,…,Am←B1,B2,…,Bn,其中Ai(1≤i≤m)、Bj(1≤j≤n)都是原子公式,分别代表结论和前提的形式。前提部分是各原子的合取式,构成子句体,结论部分最多只有一个原子,称为子句头。由此可将HORN子句分成两个基本类型:①有头HORN子句(用来代表一条规则),例如,grandfather(x,z)←father(x,y),father (y,z)代表:x是y的父亲且y是z的父亲,则x是z的祖父。有头无体的HORN子句是一断言(用来代表一个事实)。例如,father(A,B)代表:A是B的父亲,father(B,C)代表:B是C的父亲。②无头HORN子句,称为目标语句(用来代表结论的否定式),例如,←grandfather(A,C)代表:A不是C的祖父。逻辑学家A.霍恩对这类子句性质作了详尽的研究,HORN子句即因此得名。

从问题归约的角度看,可将HORN子句解释为一过程,它将问题(目标)A归约为若干子问题(子目标),每一子问题Bi(1≤i≤n)又可解释为对其他过程(HORN子句)的调用。有头无尾的HORN子句则代表一个已知其解的基元问题。过程调用实际上是使构成子句体的一个原子(子目标)与某一子句头匹配,这就是运用归结原理中的合一的过程。因此逻辑程序的执行过程也就可以看成是定理证明过程,其中解释程序起定理证明器或问题求解器的作用。

发展HORN子句的过程调用(B1,B2,…,Bn)可按任意次序进行,适合于平行处理。HORN子句可作过程性的解释也可作陈述性的解释,运用比较方便。因此,以HORN子句为基础的逻辑程序设计语言PROLOG受到人们的重视(见PROLOG语言)。日本的第五代计算机系统的计划也推动了逻辑程序设计的研究。也有人认为,不同类型的问题需要不同风格的程序设计方法,在下一代的知识信息处理系统中除逻辑程序设计之外,还必须重视面向对象的程序设计、面向存取的程序设计、规则型程序设计,此外,建立与知识信息处理相适应的程序设计环境也是重要的课题。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
中国古代四大美女:背后隐藏惊人秘密
 女性   2025-06-20
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有