有极 深刻的和普遍的逻辑和计算机科学之间的连接。在理解它们可能是什么时,请记住计算机科学也被称为“信息技术”或“信息学”,这意味着计算机系统捕获,处理和传递信息。好吧,逻辑是类似的事情。它研究如何在句子中捕获信息,以及一个陈述如何可能成为另一个陈述的结果,即,其信息内容如何已经存在于另一陈述(或陈述集合)中。从这个意义上讲,逻辑和计算机科学本质上是相同的纪律,侧重于不同方面。逻辑学家(Church,Kleene,Turing,Post及其学生和同事)创建了计算机科学专业,许多逻辑学家继续为计算机科学做出贡献,最著名的是让·伊夫·吉拉德(Jean-Yves Girard)和他的学生。
以下是计算机科学中逻辑的一些标准应用程序:
的设计 数字电路完全基于建议逻辑,以至于其工程师称其为“逻辑设计”,而不是“电路设计”。人们甚至认为编写计算机程序都涉及设计其“逻辑”。(请注意,后一种意义上的“逻辑”是一种非正式概念,而不是形式逻辑,用于指代程序中的信息流以及信息是否被正确处理。)
谓词逻辑及其数学表亲,集合论被用于各种 计算语言(例如用于关系数据库查询的SQL)中使用。还有一些基于逻辑的编程语言,称为“逻辑编程语言”。
您已经提到的知识表示形式具有许多基于逻辑的形式主义。即使使用非逻辑形式主义,其中许多仍然具有逻辑含义,因此是基于逻辑的。
陈述式不仅具有真/假值,而且具有确定性/不确定性级别的概率逻辑,正日益成为机器学习系统的基础。
如果要正式说明程序的功能,即给出程序说明,最终将使用某种形式的逻辑语言。确实,有很多程序规范语言,例如Z和B,都是基于谓词逻辑和集合论的。也有基于等式逻辑的规范语言,例如Larch。计算机科学家经常发明新的逻辑来表示计算机科学的需求,例如Hoare逻辑和分离逻辑,或者他们选择并开发各种未充分使用的传统逻辑形式,例如时间逻辑和模态逻辑,并进一步加以发展。
如果要验证程序是否按照预期执行操作,则最终不仅要使用逻辑语言,还要使用整个机器的逻辑:证明论,模型理论和决策程序。验证技术现在正在突飞猛进地发展,我希望在再过十年左右的时间里,验证技术将被常规用于几乎所有的软件开发。
实际上,逻辑与计算机科学之间的联系是如此深入和普遍,以至于我想说,如果没有对逻辑的透彻了解,很难成为一名优秀的计算机科学家。
一些AI科学家此时低估了逻辑的原因是,一些早期的AI开发人员已提出将现成的逻辑作为一种逻辑进行了广泛的解释。工具而不是基础。从本质上讲,人工智能有望带来魔力。我们不必费心编写系统编程来获得结果。他们将能够自己弄清楚如何产生解决方案,因为它们将是“智能的”。逻辑似乎指明了方向,因为如果计算机系统理解逻辑并知道如何使用逻辑规则处理信息,则它们将能够传递魔术。回想起来,这种对逻辑的信念被放错了地方。首先,现成的逻辑同时太强和太弱。从某种意义上说,逻辑规则太笼统,无法设计有效的程序,这太强了。它也太弱了,因为它是数学家为满足数学需求而设计的逻辑,它并没有 拥有处理AI系统必须处理的许多其他种类的现实世界信息所需的词汇表(例如不确定性,时间,变化,知识,代理等上下文信息)。因此,人工智能目前正遭到逻辑的强烈反对。但是我认为,当他们克服这种强烈反对时,人工智能科学家将意识到,所有新方法仍然基于