**P#**是一款以Common Language Infrastructure撰写的Prolog语言直译器。
简介**P#**是一款以Common Language Infrastructure撰写的Prolog语言直译器。
特色:
扩展Prolog语言,使其支持并发机制。
Prolog可以生成任何的.NET对象。
能与微软.NET Framework和Mono相容。1
PrologProlog(Programming inLogic的缩写)是一种逻辑编程语言。它创建在逻辑学的理论基础之上, 最初被运用于自然语言等研究领域。现在它已广泛的应用在人工智能的研究中,它可以用来建造专家系统、自然语言理解、智能知识库等。
历史Prolog语言最早由Aix-Marseille大学的Alain Colmerauer与Phillipe Roussel等人于60年代末研究开发。1972年被公认为是Prolog语言正式诞生的年份,自1972年以后,分支出多种Prolog的方言。最主要的两种方言为Edinburgh和Aix-Marseille。最早的Prolog解释器由Roussel建造,而第一个Prolog编译器则是David Warren编写的。
Prolog一直在北美和欧洲被广泛使用。日本政府曾经为了建造智能计算机而用Prolog来开发ICOT第五代计算机系统。在早期的机器智能研究领域,Prolog曾经是主要的开发工具。
80年代Borland开发的Turbo Prolog,进一步普及了Prolog的使用。1995年确定了ISO Prolog标准。
特点有别于一般的函数式语言,prolog的程序是基于谓词逻辑的理论。最基本的写法是定立对象与对象之间的关系,之后可以用询问目标的方式来查询各种对象之间的关系。系统会自动进行匹配及回溯,找出所询问的答案。
Prolog代码中以大写字母开头的元素是变量,字符串、数字或以小写字母开头的元素是常量。下划线(_)被称为匿名变量。
语法示例表示事实:
human(kate).human(bill).likes(kate,bill).表示kate和bill是人(human),kate喜欢bill,而表示规则:
friend(X,Y):-likes(X,Y),likes(Y,X).表示对于两个对象XY,如果X喜欢Y,且Y喜欢X,那么他们是朋友。2
参见Visual Prolog
LISP
non-Monotonic Logic
本词条内容贡献者为:
王慧维 - 副研究员 - 西南大学