逻辑程式设计


逻辑程式设计

文章插图
逻辑程式设计【逻辑程式设计】逻辑程式设计将逻辑直接作为程式设计语言并将计算作为受控推理的一种程式设计技术 。
基本介绍中文名:逻辑程式设计
外文名:Logic programming
属性:一种程式设计技术
国家:法国
设计者:科莫劳埃小组
介绍逻辑编程的要点是将正规的逻辑风格带入电脑程式设计之中 。数学家和哲学家发现逻辑是有效的理论分析工具 。很多问题可以自然地表示成一个理论 。说需要解答一个问题,通常与解答一个新的假设是否跟现在的理论无冲突等价 。逻辑提供了一个证明问题是真还是假的方法 。创建证明的方法是人所皆知的,故逻辑是解答问题的可靠方法 。逻辑编程系统则自动化了这个程式 。人工智慧在逻辑编程的发展中发挥了重要的影响 。猴子和香蕉问题是逻辑编程社区的着名问题 。电脑须自行找出令猴子接触香蕉的可行方法,取代程式设计师指定猴子接触香蕉的路径和方法 。逻辑编程创建了描述一个问题里的世界的逻辑模型 。逻辑编程的目标是对它的模型创建新的陈述 。世界上知识不断澎涨 。传统来说,我们会将一个问题陈述成单一的假设 。逻辑编程的程式通过证明这个假设在模型里是否为真来解决问题 。一些经常用到逻辑编程工具的範畴:专家系统,程式从一个巨大的模型中产生一个建议或答案 。
自动化证明定理,程式产生一些新定理来扩充现有的理论 。
最常用的逻辑程式语言是Prolog,另外有较适用于大型方案的Mercury 。详尽的清单可见于Category:逻辑程式语言 。沿革1972年法国科莫劳埃小组实现了第一个逻辑程式设计语言PROLOG 。1974年以后R.科瓦尔斯基进一步阐明了PROLOG的理论基础,并系统地发展了逻辑程式设计的思想 。对于传统的程式设计来说,算法的逻辑意义往往被程式複杂的控制成分所掩盖,使程式的正确性难以得到证明 。而且通常的高级程式设计语言属于过程性语言,需要在程式执行前详细规定运行步骤 。科瓦尔斯基对传统的算法或对用通常高级语言编写的程式提出了一个着名的分析公式,即算法=逻辑+控制 。其基本思想是要从根本上改变程式设计的方法:用户只需要编写程式的逻辑部分(逻辑程式设计之名由此而来),而系统中的解释程式则实施控制部分的职能 。优点这种将逻辑与控制分开的方法具有下列的优点:①可以在控制部分设计之前不断改进逻辑程式 。②可以改进控制部分而无需变动逻辑程式本身 。③可以从程式说明中生成逻辑程式,加以验证和变换,而无需考虑其控制部分 。④只需在逻辑程式中规定目标和实现这些目标的现有条件,也就是只需告诉系统做什幺(What to do),至于如何执行也就是说怎样做 (How to do),则由系统的控制部分,即解释程式处理解决 。历史早在二十世纪七十年代,罗伯特·科瓦尔斯基等人提出了逻辑可以作为程式设计语言的基本思想,把逻辑和程式这两个截然不同的概念协调统一为一个概念,于是诞生了逻辑程式设计 。这也是早期自动定理证明和人工智慧发展的自然结果 。随后,逻辑程式设计得到了迅速发展,特别是基于一阶谓词的逻辑程式设计语言,将逻辑推理对应于计算,具有丰富的表达能力、非确定性等特点,在定理机器证明、关係资料库系统、程式验证、模组化程式设计和非单调推理等都有了广泛的套用 。现状现行逻辑程式的基本语句属于一阶谓词演算的一个子集,HORN子句集 。HORN子句的一般形式为:A1,…,