人工智能编程语言是一类适应于人工智能和知识工程领域的、具有符号处理和逻辑推理能力的计算机程序设计语言。能够用它来编写程序求解非数值计算、知识处理、推理、规划、决策等具有智能的各种复杂问题。
事实上,已经有多种对应于各种不同知识表示方式的人工智能编程语言。按所对应的知识表示方式不同。大体上可以区分为以下几类:
1.对应于产生式规则知识表示的语言。例如,由美国卡耐基·梅农大学的C·L·福基(C.L.Forgy)等人于1977年开发的OPS(officialproductionsystem),当时’就用它来为DEC公司开发了一个解决VAX计算机系统配置问题的系统X1/XCON。
2.对应于逻辑公式知识表示的语言。一种已广为应用的逻辑语言就是PROLOG。它是1970年由法国马塞大学的A.柯迈豪埃(AlainColmerauer)所开发的。
3.对应于框架或语义网知识表示的语言。这是一类所谓“面向对象”的(object-oriented)语言。其中一个有代表性的语种就是Smalltalk。它是在1980年首创,后来发展了好几个版本,通常以发布的年份来标记,例如,第1个版本叫Smalltalk-80等等。
4.对应于函数知识表示或函数式程序设计风格的语言。首先是由计算机科学家J.巴科斯(J.Backus)在1978年发表的一篇获图灵奖的论文中提出。这篇论文的题目就叫做:“程序设计能够摆脱诺依曼风格吗?程序的函数风格及其代数”。它提出的函数式编程语言,虽然在理论上很,而且建立在坚实的数学基础之上,但是在常规计算机上很难实现。倒是早在20世纪50年代末、60年代初美国麻省理工学院的约翰·麦卡锡等人首先开发的列表处理语言LISP(LIStProcessing)迄今仍然广泛用于编写人工智能应用程序,特别是用于开发系统。函数语言在解释执行机制上的特点是递归地由较内层向外层归约(reduction),而每次归约都是把一个函数“作用”,于它的变元而得出函数值的过程。所以又称这类语言为“作用式”(applicative)语言。