第五代程式語言
第五代編程語言(5GL)是一種期望計算机能自動化問題求解的意圖,基於問題所給定的某些限制,交由程序來處理而不需以程序員再投入人力開發程式。多數基於限制式和邏輯推演的編程語言,以及其它一些宣告式的語言,或可歸類為第五代編程語言。
歷史
雖然第四代程式語言是為了構建特定的程序而設計的,但第五代語言的設計目的是使計算機在沒有程序員的情況下,解決特定的問題。這樣,使用者只要提出哪些問題待解,而問題的可行解要滿足哪些條件;而不必再思考如何實作程序或演算法來求解。第五代語言主要用於人工智能研究。Prolog、OPS5和Mercury是第五代語言的例子[1]。
這類型的語言很多源自於Lisp机器,以 Lisp 編程語言開發,例如ICAD。而後有許多框架語言,如KL-ONE。
在20世紀80年代第五代編程語言被認為是未來的方式,有些人預測除了低階机器組合語言之外,第五代編程語言將取代所有其它高階語言進行系統開發。值得一提的是從 1982年到了 1993年,日本[2][3]在第五代計算機系統專案上投入了大量研究和資金,希望能夠利用這些工具設計一個龐大的計算機網絡。但是隨著更大的專案建立,其中方法的缺陷變得更加明顯。事實證明給定一組問題限定的約束,能導出一個有效果和有效率的算法來解決這個問題,本身就是一個非常困難的問題。關鍵步驟到21世紀初葉還無法完全不需人工介入而自動化,仍需要人類程序員的對問題的理解、以及卓越的洞察力。
常見的誤解
過去偶爾有軟件供應商對他們產品的行銷策略,宣稱是以5GL編程語言開發的成果。這些軟件大多數實際上只是具有更進階自動化的程度,和撘配專業知識庫的4GL編程產品。由於20世紀80年代的炒作逐漸消失,相關的專案最終全部被放棄,對5GL編程語言的認知也降低水平了,這又開啟供應商的門路,重新使用這個術語來推銷他們的新產品,但因為此名稱的涵義與認知已經轉化,在21世紀也較少引發當代程序員之間的爭議了。