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