事實上,已經有很多人工智能編程語言對應著各種知識表示。根據對應的知識表示,就不壹樣了。壹般可分為以下幾類:
1.對應於產生式規則知識表示的語言。例如,1 977年美國卡耐基梅農大學的C L Forgy開發的OPS(官方生產系統)被用於開發DEC的專家系統X1/XCON。
2.對應於邏輯公式的知識表示的語言。壹種已經被廣泛使用的邏輯語言是PROLOG。它是由法國馬賽大學的Alain Colmerauer於1 970年發明的。
3.對應於框架或語義網的知識表示的語言。這是壹種所謂的“面向對象”語言。代表語言之壹就是Smalltalk。最早創作於1980,後來開發了幾個版本,通常以發行年份為標誌。比如1版本叫Smalltalk-80之類的。
4.對應於函數式知識表示或函數式編程風格的語言。首先是計算機科學家J. Backus在1978年發表的獲得圖靈獎的著名論文中提出的。這篇論文的題目是:“編程能否擺脫諾依曼風格?程序及其代數的函數風格”。雖然它的函數式編程語言在理論上是完美的,並且建立在堅實的數學基礎之上,但是在常規計算機上很難實現。相反,由麻省理工學院的約翰·麥卡錫(john mccarthy)於50年代末60年代初首先開發的LISP(列表處理)至今仍被廣泛用於編寫人工智能應用程序,尤其是開發專家系統。函數式語言在解釋執行機制上的特點是從最內層到外層遞歸歸約,每壹次歸約都是將壹個函數“作用”在它的自變量上以獲得函數值的過程。因此,它也被稱為“應用”語言。
人工智能編程語言有壹個共同的特點,就是這些語言是針對要解決的問題獨立設計的,結合了知識表示,完全脫離了當代計算機的諾依曼結構特征;它們比面向過程的高級編程語言處於更高的抽象層次。因此,用這些語言編寫的程序在現代計算機環境中,無論是解釋的還是編譯的,通常都是低效的。特別是當程序龐大復雜時,會浪費大量的系統資源(主要指處理器占用的時間和存儲空間),使系統性能下降到不可容忍的程度。