visual_prolog編程

visual_prolog編程

ID:20661138

大?。?.14 MB

頁數(shù):149頁

時間:2018-10-14

visual_prolog編程_第1頁
visual_prolog編程_第2頁
visual_prolog編程_第3頁
visual_prolog編程_第4頁
visual_prolog編程_第5頁
資源描述:

《visual_prolog編程》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第7章VisualProlog編程本章介紹基于VisualProlog編程方面的知識,主要內(nèi)容包括VisualProlog基礎(chǔ)、VisualProlog的GUI編程、VisualProlog的邏輯層、VisualProlog的數(shù)據(jù)層。第7章VisualProlog編程7.1VisualProlog基礎(chǔ)7.2VisualProlog的GUI編程7.3VisualProlog的邏輯層7.4VisualProlog的數(shù)據(jù)層本章小結(jié)與習(xí)題7.1VisualProlog基礎(chǔ)傳統(tǒng)的Prolog與VisualProlog6之間的差別主要體現(xiàn)在如下幾

2、個方面:1)程序結(jié)構(gòu)很明顯,傳統(tǒng)Prolog中所使用的結(jié)構(gòu)與VisualProlog6中使用的結(jié)構(gòu),在理解的難易程度方面不同。主要包括如何規(guī)劃來自定義(definitions)的聲明(declarations),以及如何簡要地說明程序必須使用指定關(guān)鍵字(keywords)進(jìn)行查找的主目標(biāo)Goal。2)文件考慮VisualProlog6提供了各種工具,以便將程序結(jié)構(gòu)組織成不同類型的文件。3)作用域訪問VisualProlog6可以挑選在其他模塊中通過使用稱為作用域標(biāo)識(Scopeidentification)的概念而開發(fā)出來的功能。4)

3、面向?qū)ο骎isualProlog6程序可以編寫成面向?qū)ο蟮某绦颍褂脴?biāo)準(zhǔn)的面向?qū)ο筇匦浴?.1VisualProlog基礎(chǔ)7.1.1程序結(jié)構(gòu)7.1.2目標(biāo)Goal7.1.3文件考慮7.1.4作用域訪問7.1.5面向?qū)ο?.1.6一個完整的例子:family1.prj67.1.7程序的取舍7.1.8小結(jié)7.1.1程序結(jié)構(gòu)VisualProlog的程序,從結(jié)構(gòu)上講,主要包括若干個段,即論域段、謂詞段、子句段、目標(biāo)段等。VisualProlog作為強(qiáng)類型的編譯型語言,通常用論域段和謂詞段來給出有關(guān)的聲明或定義。7.1.1.1聲明與定義聲明(

4、Declaration)與定義(Definition)有著不同的含義。在Prolog中,當(dāng)需要使用一個謂詞的時候,就可以直接使用,無需事先向Prolog推理機(jī)做任何的通告。例如,在前面的例子中,grandFather謂詞的子句就是利用傳統(tǒng)的Prolog的謂詞頭和謂詞體結(jié)構(gòu)直接寫下來的。我們不用在代碼中再告知推理機(jī)這個謂詞結(jié)構(gòu)是后面需要使用的。類似地,當(dāng)在傳統(tǒng)的Prolog中使用一個復(fù)合論域時,無須首先告誡Prolog推理機(jī)關(guān)于使用該論域有何意圖。只要感到需要,就可以直接使用一個論域。然而,在VisualProlog6中,在編寫一個謂詞

5、的子句體代碼之前,我們必須首先對編譯器聲明這樣一個謂詞的存在。類似地,在使用任何論域之前,也必須先進(jìn)行聲明,以便將這些論域的存在告知編譯器。7.1.1.1聲明與定義在VisualProlog6中需要這種預(yù)先告知功能的原因本質(zhì)上是為了保證將運行時間異常(runningexceptions)盡可能地轉(zhuǎn)變?yōu)榫幾g時間錯誤(compiletimeerrors)。對于“運行時間異常”,我們指的是只在運行所編譯的程序期間出現(xiàn)的問題。例如,如果我們想使用一個整數(shù)作為一個函數(shù)的參數(shù),但是卻錯誤地使用了實數(shù),這就會成為一個運行錯誤(這大都出現(xiàn)在使用其他編

6、譯器的程序中,但不是在VisualProlog6中),程序就會因此而失敗。當(dāng)聲明已定義的謂詞和論域時,這類位置語法,即哪一個參變量屬于哪一個論域,就會對編譯器起作用。因此,當(dāng)VisualProlog6執(zhí)行編譯時,它將比較徹底的檢查程序,以發(fā)現(xiàn)諸如此類的語法錯誤及其它錯誤。7.1.1.1聲明與定義由于VisualProlog6的這些特性,整個程序的效率因此提高了。程序員不必等到程序?qū)嶋H執(zhí)行時才發(fā)現(xiàn)錯誤。事實上,對于實際編寫程序的人,將體會到這大大地節(jié)約了時間。通常,運行時導(dǎo)致發(fā)生運行時間異常的條件如此難以捉摸,以致于錯誤可能會在很多年后

7、才被發(fā)現(xiàn),或者會在許多特別重要的情況或令人尷尬的場合表現(xiàn)出來。所有這些表明,編碼中存在的論域和謂詞要在定義前給出合適的聲明,以給編譯器詳盡的指示。7.1.1.2關(guān)鍵字一個VisualProlog6的程序包括一組被標(biāo)點分為不同部分的代碼,由特定的關(guān)鍵字告訴編譯程序所要生成的類型。例如,關(guān)鍵字可以將謂詞和論域的定義和聲明區(qū)分開。通常,每一部分由一關(guān)鍵字開始,在每一部分結(jié)束時,一般沒有關(guān)鍵字指示。新的關(guān)鍵字的出現(xiàn)表明前一部分的結(jié)束和下一部分的開始。對這一規(guī)則的例外是關(guān)鍵字“implement”和“endimplement”,在這兩個關(guān)鍵字中

8、間的代碼表示它們屬于一個特殊的類。若有人不懂類的概念,可以把它看作程序的一個模塊或一個部分。在本節(jié)中,我們將只介紹下述關(guān)鍵字。同樣我們給出了這些關(guān)鍵字的用途,具體的句法可以從文檔資料中學(xué)到。VisualProlog6中還

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。