第五代程式語言

第五代編程語言（5GL）是一種期望計算机能自動化問題求解的意圖，基於問題所給定的某些限制，交由程序來處理而不需以程序員再投入人力開發程式。多數基於限制式和邏輯推演的編程語言，以及其它一些宣告式的語言，或可歸類為第五代編程語言。

歷史
雖然第四代程式語言是為了構建特定的程序而設計的，但第五代語言的設計目的是使計算機在沒有程序員的情況下，解決特定的問題。這樣，使用者只要提出哪些問題待解，而問題的可行解要滿足哪些條件；而不必再思考如何實作程序或演算法來求解。第五代語言主要用於人工智能研究。Prolog、和Mercury是第五代語言的例子。

這類型的語言很多源自於Lisp机器，以 Lisp 編程語言開發，例如。而後有許多，如。

在20世紀80年代第五代編程語言被認為是未來的方式，有些人預測除了低階机器組合語言之外，第五代編程語言將取代所有其它高階語言進行系統開發。值得一提的是從 1982年到了 1993年，日本在第五代計算機系統專案上投入了大量研究和資金，希望能夠利用這些工具設計一個龐大的計算機網絡。但是隨著更大的專案建立，其中方法的缺陷變得更加明顯。事實證明給定一組問題限定的約束，能導出一個有效果和有效率的算法來解決這個問題，本身就是一個非常困難的問題。關鍵步驟到21世紀初葉還無法完全不需人工介入而自動化，仍需要人類程序員的對問題的理解、以及卓越的洞察力。

常見的誤解
過去偶爾有軟件供應商對他們產品的行銷策略，宣稱是以5GL編程語言開發的成果。這些軟件大多數實際上只是具有更進階自動化的程度，和撘配專業知識庫的4GL編程產品。由於20世紀80年代的炒作逐漸消失，相關的專案最終全部被放棄，對5GL編程語言的認知也降低水平了，這又開啟供應商的門路，重新使用這個術語來推銷他們的新產品，但因為此名稱的涵義與認知已經轉化，在21世紀也較少引發當代程序員之間的爭議了。

參考資料

另見
约束编程

編程範式

编程语言分类