




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第16章創(chuàng)建您自己的語言:解釋器模式,16.1創(chuàng)建您自己的語言解釋器,16.2模式定義,16.3模式分析,16.4模式實現(xiàn),16.5設計原則,16.6使用環(huán)境,16.7本章的要點,16.1創(chuàng)建您自己的語言解釋器,首先,簡單地定義“myida”語言的語法規(guī)則:(1)“MyIDA”(2)“MyIDA”以PROGRAM開始,以END結束;(3)PRINTLN指打印一行并將其包裝;(4)使用FORFROMTOEND來表示循環(huán)。示例語言內容如下:程序打印開始.對于90到100次打印,我一次打印一次.這句話的意思是:首先打印“開始”,然后打印“90”、“91”、“100”,最后打印“結束”。16.2模式定
2、義,解釋器模式,是給出一種語言的語法表示,并定義一個解釋器來解釋該語言中的句子。解釋器模式描述了在擁有簡單的語法后,如何使用模式設計來解釋這些語句。16.3模式分析,16 . 3 . 1“myida”語言分析(1)從程序開始。(2)語句有兩種:基本語句和復雜語句。(3)語言的主要部分應該是一組要執(zhí)行的列表語句。(4)復雜語句包含一個列表語句集,例如,示例中的FOR語句包含PRINTLN語句。(5)語言的解釋和執(zhí)行是一個遞歸調用過程,在這個過程中,每個語句都將被遞歸地解釋和執(zhí)行,直到一個基本語句被執(zhí)行,然后返回。(6)端對端。16 . 3 . 1“myida”語言分析,我們可以得到“myida”
3、語言的解釋樹結構圖,如圖16-1所示。16.3.2“邁達”語言解釋器原則。根據(jù)“myida”語言的解釋結構圖和語法規(guī)則描述的內容,我們可以很容易地得到“MyIDA”語言解釋器的活動圖,如圖16-2所示。16.4模式實現(xiàn),16.4.1創(chuàng)建上下文環(huán)境16.4.2創(chuàng)建解析表達式1表達式接口IExpressions 2主表達式程序表達式3列表表達式列表表達式4命令表達式命令表達式5循環(huán)表達式for表達式6基本表達式Primitiv EExpression 16.4.3使“myida”語言解釋器工作,16.5設計原則,1“打開-關閉”原則,2包裝更改的部分,16.6使用場合,(1)特定類型問題的頻率足夠高,并且業(yè)務規(guī)則經(jīng)常更改(2)業(yè)務規(guī)則不太復雜和繁瑣,所以抽象語法規(guī)則比較容易。(3)效率不是軟件系統(tǒng)的主要考慮因素。16.6使用時,查看解釋器模式的靜態(tài)類圖,加深對解釋器模式的理解,如圖16-5所示。16.6使用場合,1解釋器模式中的角色2擴展1:解釋器模式1:Java SD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農村板車出售合同范例
- 公司注銷業(yè)務合同范本
- 中醫(yī)診所招聘合同范本
- 單位出售土地合同范本
- 公司車定維修合同范本
- 共享出租場地合同范本
- 勞務聯(lián)營合同范例
- 加油站出租合同范本
- 企業(yè)賦能合同范本
- 二手房房東出租合同范例
- (2024年)中國傳統(tǒng)文化介紹課件
- 糖尿病患者飲食指導課件
- 人工智能數(shù)據(jù)標注百億產(chǎn)業(yè)詳細介紹
- 2023年高考真題-地理(天津卷) 含答案
- 2024年10月自考02160流體力學試題及答案含評分參考
- 2025年公務員考試《行測》模擬題及答案(詳細解析)
- 2024年黑龍江省牡丹江市中考歷史試卷
- 滬科版八年級物理知識點總結
- 孫權勸學(原卷版)-2024年中考語文之文言文對比閱讀
- 高速公路日常清掃與養(yǎng)護方案
- 風電epc合同模板
評論
0/150
提交評論