-->

左耳听风_040_39_编程范式游记10-_逻辑编程范式

你好,我是陈浩网名猪耳朵house.那这一讲呢,我们重点介绍一下pro log语言。

Prolog的全程呢是programming. In logic是一种逻辑编程语言,它创建在逻辑学的理论基础之上,最初呢是运用在自然语言等研究领域的那现在呢它已经被广泛应用在人工智能的研究中,可以用来建造专家系统、自然语言理解,还有智能知识库等等。

Pro OGG言啊,它最早是由x马塞大学的aliyann camera和飞利浦rosale的人,在二十世纪六十年代末研究开发的那pro log语言公认呢正式诞生的年份呢是一九七二年。

自一九七二年以来呢,pro log语言也分支出了多种方言。

那其中最主要的两种方言呢是爱丁堡和x马赛,最早的prolog解释器啊是由rosell本人创造的。

而第一个prolog编译器呢则是由david varon编写的那一直以来呢pro log都在北美和欧洲广泛使用。

日本政府呢曾经为了建造智能计算机,用prolog来开发ICOT第五代计算机系统。

在早期的机器智能研究领域呢,pro log曾经是主要的开发工具。

在二十世纪八十年代呢,burland开发了turbo pro log,进一步普及了prolog的使用。

最后呢在在一九五年,人们确定了ISO prolog标准和一般的函数式语言的关。

同prolog的程序呢是基于为此逻辑的理论,最基本的写法呢是定义对象与对象之间的关系。

那之后呢就可以用询问之间的方式来查询各种对象之间的关系。

那系统呢会自动进行匹配和回溯,找出所询问的答案。

在pro log代码中呢,以大写字母开头的元素呢是变量,而字符串数字或者以小写字母开头的元素呢是常量,下划线呢被称为匿名变量。

逻辑编程呢是靠推理来完成的。

我们通过文中的这个例子来看一下pro log的语言特征,我们可以看到这么几个步骤。

首先呢我定义了一个规则,哲学家是人类。

那接下来呢我陈述了几个事实,苏格拉底、亚里士多德、柏拉图都是热学家。

然后啊我们问谁是人类?于是呢就会说出苏格拉底、亚里士多德和柏拉图逻辑变证范式呢有这样几个特征。

那第一呢逻辑编程的要点是将正规的逻辑风格带入计算机的程序设计之中。

那第二呢逻辑编程它建立了描述一个问题里的世界的逻辑模型。

那第三呢,逻辑编程的目标是对它的模型建立新的陈述。

通过陈述事实,那程序呢自动推导出相关的逻辑。

我们再来看一个经典的四色地图的问题。

任何一个地图啊,相邻的区域不能用相同的颜色。

那这个呢只需要四种不同的颜色就够了。

那用pro log语言应该怎么写呢?首先呢我定义四种颜色,然后呢我定一个规则啊,就是相邻的两个地区不能用相同的颜色。

那其中最前面的两个条件,color state a color和color, state b color表明了两个变量,state a color和state b color.然后第三个条件,state a color不等于state b color啊,表示颜色不能相同。

那接下来的事儿呢就比较简单了,我们描述事实就好了。

描述哪些区域是相邻的事实。

那接下来文中这两行代码,那第一行呢描述了BW和BY是相邻的,而第二行呢描述了多个区域BWBYSLRP和ND的相邻关系。

那于是呢我们就可以描述出整个德国地图的相近关系了。

那最后呢我们就可以让pro log推导到各个地区的颜色啊,你可以参考文中我写的代码。

那总的来说呢,pro log这种逻辑编程把业务逻辑或者说算法文象成,只关心规则事实和问题的推导。

这样的标准方式不需要关心程序的控制啊,也不需要关心具体的实现。

算法只需要给出可以用于推导的规则和相关的事实和问题呢,就可以通过逻辑推导来解决掉。

是不是很有意思,也很好玩呢?这里呢我在文中推荐了两个学习资源和对应的链接,如果有兴趣啊,你可以学习一下。

文末呢是编程范式游记系列文章的目录啊,方便你了解这一系列内容的全貌。