跳轉到內容

Prolog/什麼是 Prolog

來自華夏公益教科書,開放的書籍,開放的世界

Prolog 是一種宣告式程式語言。這意味著在 Prolog 中,你不需要像在 C 和 Java 等過程式語言中那樣逐行編寫計算機應該執行的操作。宣告式語言背後的基本思想是描述一種情況。根據此程式碼,直譯器或編譯器將告訴你解決方案。在 Prolog 的情況下,它會告訴你 Prolog 語句是否為真,以及如果它包含變數,這些變數需要取什麼值。

這聽起來像是程式設計師的福音,但事實是 Prolog 很少以這種純淨的方式使用。雖然宣告式思想是 Prolog 的基礎,但可以將 Prolog 程式碼視為過程式。Prolog 程式設計師通常會根據他們正在閱讀或編寫的程式碼部分來進行兩者兼顧。然而,在學習 Prolog 時,程序式程式設計經驗沒有任何用處。(人們常說,對於沒有程序式程式設計經驗的人來說,學習 Prolog 比對於有經驗的人來說更容易)Template:Whom

Prolog 被認為是一種難以掌握的語言Template:Whom {{citation}}: 空的引用 (幫助),尤其是在學生試圖急於求成的時候,主要是因為學生需要採用不同的思維方式以及 Prolog 程式中的大量遞迴。然而,如果使用得當,Prolog 可以成為一種非常強大的語言。

為什麼要學習 Prolog?

[編輯 | 編輯原始碼]

學習 Prolog 當然不會像學習 C++、Java 或 Python 一樣總是有成效。Prolog 在與人工智慧研究相關的領域最為有用,例如問題解決、(路徑)規劃或自然語言理解。一些非嚴格意義上屬於人工智慧的領域,例如解析器構建,也可以從 Prolog 中獲益匪淺。

然而,那些不每天使用自然語言系統的人也可以從 Prolog 中獲益匪淺。由於 Prolog 使用了一些被認為是困難或高階的程式設計技術(最顯著的是遞迴),Prolog 可以成為深入瞭解這些技術的絕佳方式。熟練的 Prolog 程式設計師一定會對遞迴、搜尋問題樹和約束邏輯程式設計等概念有深入的瞭解。Prolog 甚至可以作為一個“草圖”工具,在用過程式語言實現之前嘗試基本的程式設計思路。

由於 Prolog 與謂詞邏輯密切相關,學習 Prolog 可以幫助你更流暢地理解謂詞邏輯。(反之亦然:任何有謂詞邏輯經驗的人肯定會更快地掌握 Prolog)

總而言之,如果你想提升自己作為網頁設計師的簡歷,Prolog 可能不是最佳選擇。Prolog 仍然主要是一種學術語言 {{citation}}: 空的引用 (幫助)。這並不意味著它純粹用於測試想法或概述技術。在 Prolog 中已經編寫了非常複雜的程式。最重要的是,Prolog 是一種複雜、強大且優雅的語言,可以激發使用者的極大滿足感;當然,它有時也會讓人感到無比沮喪。

如前所述,學習 Prolog 並不容易。Prolog 的工作原理與過程式語言不同,因此需要一種特定的思維方式。學習 Prolog 時,重要的是要慢慢來,讓概念沉澱後再繼續學習。建議在學習過程中使用不止一種文字或教材,以獲得對某個主題的多角度理解。最後,如果你掌握了這裡沒有解釋清楚的棘手內容,請隨時編輯華夏公益教科書上的文字,以便未來的學生更容易學習。


下一章:邏輯入門

華夏公益教科書