網友評分: 9.4分
Logtalk是一款功能強大、簡便實用的面向對象的邏輯編程語言,基于分類組成的編程,具有事件驅動程序、多層次多線程編程、組件編程等功能,為用戶進行邏輯編程帶來了新的方法。
接口與實現的分離
謂詞指令(聲明)可以包含在協議(接口)中,它可以由任何對象實現。協議是一流的實體,旁邊的對象和類別。
參數對象
對象標識符可以是包含可用于參數化對象謂詞的自由變量的復合項。這允許我們將謂詞子句解釋為提供參數對象標識符的實例化。即,使用參數對象,我們可以將任意數量的謂詞與復合詞相關聯。
支持基于類和基于原型的系統
在同一個應用程序中,可能有基于類的層次結構(具有實例化和專門化關系)和基于原型的層次結構(具有擴展關系)。此外,諸如協議(接口)和類別(組件)等基本語言特征可以由類、實例和原型同時使用。
支持多個對象層次結構
不必局限于一個單一的、長的層次結構,它植根于一些通用對象中。
私有、受保護和公共繼承
logtalk支持私人,保護,并在某種程度上類似于C++的公共遺產。此外,任何實體關系都可以使用范圍關鍵字來限定。例如,對象可以私下實現協議,從而使所有協議聲明的謂詞都是私有的。
私有、受保護和公共對象謂詞
設置對象謂詞的范圍以匹配協議設計,并讓運行時系統強制執行您的選擇。
靜態和動態對象
對象可以是靜態的,也可以是動態的。靜態對象在源文件中定義,這些源文件以Prolog文件相同的方式編譯和加載。動態對象可以在源文件中定義,也可以在運行時創建。
靜態和動態對象謂詞
任何靜態對象都可以包含靜態謂詞和動態謂詞。
LogTalk語法擴展標準Prolog語法
LogTalk使用標準的Prolog語法,并添加了一些操作符和指令來實現平滑的學習曲線。Prolog代碼可以很容易地封裝在對象內,很少或沒有變化。此外,LogTalk可以透明地解釋大多數Prolog模塊作為Logice對象,以方便重用現有代碼(例如庫)。
λ表達式
本地支持lambda表達式,包括咖喱。
事件驅動程序設計
謂詞可以在調用事件發生時隱式調用,允許最小化對象耦合的編程解決方案。此外,事件為行為反射提供支持,并且可以用于實現面向方面編程中的切入點和建議的概念。
基于構件的程序設計
謂詞可以封裝在類別內,可以由任何對象實際導入,而不需要任何代碼復制,而不考慮對象層次結構。因此,對象可以通過類別的組合來定義,這些類別作為細粒度的代碼重用單元。類別也可以擴展現有的類別。類別可以用來實現方面和混合行為,而不需要繼承。類別還支持運行代碼的熱修補。
多線程編程
在與選定的后端Prolog編譯器運行LogTalk時,可以使用高級別多線程編程,允許對象同時支持同步消息和異步消息。螺紋發動機,獨立和并行,以及競爭性或并行性也得到支持。輕松地利用現代多處理器和多核計算機,而不必擔心創建和銷毀線程的細節,實現線程通信,或同步線程。
多繼承多實例支持
LogTalk支持協議和實現的多重繼承。對象可以實現多個協議,并擴展、專門化或實例化多個對象。多繼承沖突可以通過LogTalk查找算法或顯式地使用謂詞指令來隱式解決。
良好性能
使用與編寫高效PROLO代碼相同的技術編譯LogTalk代碼。此外,LogTalk支持靜態綁定和動態綁定(使用方法查找緩存),大大提高了性能。一些Prolog編譯器的基準測試結果在此可用。
與Prolog標準緊密結合
LogTalk設計用于與任何Prolog語言一致或緊密遵循官方和事實Prolog標準的平滑集成。
兼容大多數Prolog編譯器
通過一個最小的配置文件與特定的后端Prolog編譯器進行對話,使之與幾乎任何現代編譯器兼容。
全面開發工具集
LogTalk分布包括制作、調試、文檔化、繪圖、測試、斷言、剖析和移植開發工具。
V3.17.0
此版本提高了動態綁定性能;
為檢測可疑調用添加了一個新的Link標志;
添加了一個新的用于幫助基準性能的生成目標;
修復了多線程回歸錯誤;包括對一些示例的改進和修復;
改進捆綁腳本;
提供對SWI Prolog和YAP的可移植性更新;
以及對文檔、編譯器、庫、工具、示例和安裝程序的其他改進和修復。