我想了解更多有关Prolog内部的知识,并了解其工作原理.
我知道如何使用它.但不是内部如何运作.Prolog中使用的算法和概念的名称是什么?
可能它构建了某种树结构或有向对象图,然后在查询时,它使用复杂的算法遍历该图.可能是深度优先搜索.可能有一些源代码,但首先从高层次的角度来看它会很棒.
我真的很喜欢人工智能,理解Prolog似乎是一个很好的开始,imho.我的想法是尝试重建类似的东西并完全跳过解析器部分.我需要知道我必须做的研究工作的方向.
Prolog中使用的算法和概念的名称是什么?
逻辑编程
深度优先,回溯搜索
统一
有关Prolog背后的理论,请参阅Sterling&Shapiro,Prolog的艺术(麻省理工学院出版社).
可能它构建了某种树结构或有向对象图,然后在查询时,它使用复杂的算法遍历该图.可能是深度优先搜索.
它没有明确地构建图形,即使对于无限的搜索空间也是如此.查看Russell&Norvig的第一章,了解状态空间搜索的概念.是的,它使用回溯进行深度优先搜索,但不是,这不是很复杂.这只是非常方便,编程替代搜索策略在Prolog中并不十分困难.
了解Prolog似乎是一个很好的开始,imho.
取决于你想做什么,但知道Prolog当然不会受到伤害.这是一种看待编程的非常不同的方式.知道Prolog帮助我很快理解函数式编程.
我的想法是尝试重建类似的东西并完全跳过解析器部分
你的意思是跳过Prolog语法?如果您恰好熟悉Scheme或Lisp,请查看Abelson和Sussman的4.4节,其中解释了如何在Scheme中实现Scheme的逻辑编程变体.
人工智能是一个广泛的领域,Prolog只涉及符号AI.至于Prolog,内部工作太复杂,无法在这里解释,但谷歌搜索将为您提供充足的资源.例如http://www.amzi.com/articles/prolog_under_the_hood.htm.
查看维基百科的文章,了解AI的其他领域.
您可能还想阅读有关Warren抽象机的信息
,将prolog代码翻译为WAM指令,然后更有效地执行.