創(chuàng)建自己的語言:解釋器模式.ppt_第1頁
創(chuàng)建自己的語言:解釋器模式.ppt_第2頁
創(chuàng)建自己的語言:解釋器模式.ppt_第3頁
創(chuàng)建自己的語言:解釋器模式.ppt_第4頁
創(chuàng)建自己的語言:解釋器模式.ppt_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第16章創(chuàng)建您自己的語言:解釋器模式,16.1創(chuàng)建您自己的語言解釋器,16.2模式定義,16.3模式分析,16.4模式實(shí)現(xiàn),16.5設(shè)計(jì)原則,16.6使用環(huán)境,16.7本章的要點(diǎn),16.1創(chuàng)建您自己的語言解釋器,首先,簡(jiǎn)單地定義“myida”語言的語法規(guī)則:(1)“MyIDA”(2)“MyIDA”以PROGRAM開始,以END結(jié)束;(3)PRINTLN指打印一行并將其包裝;(4)使用FORFROMTOEND來表示循環(huán)。示例語言內(nèi)容如下:程序打印開始.對(duì)于90到100次打印,我一次打印一次.這句話的意思是:首先打印“開始”,然后打印“90”、“91”、“100”,最后打印“結(jié)束”。16.2模式定

2、義,解釋器模式,是給出一種語言的語法表示,并定義一個(gè)解釋器來解釋該語言中的句子。解釋器模式描述了在擁有簡(jiǎn)單的語法后,如何使用模式設(shè)計(jì)來解釋這些語句。16.3模式分析,16 . 3 . 1“myida”語言分析(1)從程序開始。(2)語句有兩種:基本語句和復(fù)雜語句。(3)語言的主要部分應(yīng)該是一組要執(zhí)行的列表語句。(4)復(fù)雜語句包含一個(gè)列表語句集,例如,示例中的FOR語句包含PRINTLN語句。(5)語言的解釋和執(zhí)行是一個(gè)遞歸調(diào)用過程,在這個(gè)過程中,每個(gè)語句都將被遞歸地解釋和執(zhí)行,直到一個(gè)基本語句被執(zhí)行,然后返回。(6)端對(duì)端。16 . 3 . 1“myida”語言分析,我們可以得到“myida”

3、語言的解釋樹結(jié)構(gòu)圖,如圖16-1所示。16.3.2“邁達(dá)”語言解釋器原則。根據(jù)“myida”語言的解釋結(jié)構(gòu)圖和語法規(guī)則描述的內(nèi)容,我們可以很容易地得到“MyIDA”語言解釋器的活動(dòng)圖,如圖16-2所示。16.4模式實(shí)現(xiàn),16.4.1創(chuàng)建上下文環(huán)境16.4.2創(chuàng)建解析表達(dá)式1表達(dá)式接口IExpressions 2主表達(dá)式程序表達(dá)式3列表表達(dá)式列表表達(dá)式4命令表達(dá)式命令表達(dá)式5循環(huán)表達(dá)式for表達(dá)式6基本表達(dá)式Primitiv EExpression 16.4.3使“myida”語言解釋器工作,16.5設(shè)計(jì)原則,1“打開-關(guān)閉”原則,2包裝更改的部分,16.6使用場(chǎng)合,(1)特定類型問題的頻率足夠高,并且業(yè)務(wù)規(guī)則經(jīng)常更改(2)業(yè)務(wù)規(guī)則不太復(fù)雜和繁瑣,所以抽象語法規(guī)則比較容易。(3)效率不是軟件系統(tǒng)的主要考慮因素。16.6使用時(shí),查看解釋器模式的靜態(tài)類圖,加深對(duì)解釋器模式的理解,如圖16-5所示。16.6使用場(chǎng)合,1解釋器模式中的角色2擴(kuò)展1:解釋器模式1:Java SD

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論