版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì) 班級(jí):21301 學(xué)號(hào):1361080108 :馬瑞澤 百度 一.課程設(shè)計(jì)目的 在分析理解一個(gè)教學(xué)型編譯程序(如PL/O)的基礎(chǔ)上,對(duì)其詞法分析程序、 語(yǔ)法分析程序和語(yǔ)義處理程序進(jìn)行部分修改擴(kuò)充。達(dá)到進(jìn)一步了解程序編譯過 程的基本原理和基本實(shí)現(xiàn)方法的U的。 二.課程設(shè)計(jì)要求 1. 基本容 (1)擴(kuò)充賦值運(yùn)算:+二和-= (2)擴(kuò)充語(yǔ)句(Pascal的FOR語(yǔ)句): FOR變量:二表達(dá)式TO表達(dá)式DO語(yǔ)句 FOR變量:二表達(dá)式DOWNTO表達(dá)式DO 語(yǔ)句 其中,語(yǔ)句的循環(huán)變量的步長(zhǎng)為2, 語(yǔ)句的循環(huán)變量的步長(zhǎng)為-2。 2. 選做容 (1)增加運(yùn)算:+和-。 (2)增加類型: 字符類型;
2、 實(shí)數(shù)類型。 (3)擴(kuò)充函數(shù):有返回值和返回語(yǔ)句;有參數(shù)函數(shù)。 (4)增加一維數(shù)組類型(可增加指令)。 (5)其他典型語(yǔ)言設(shè)施。 3. 本人在課程設(shè)計(jì)中己實(shí)現(xiàn)的功能 (1)增加單詞:保留字 ELSE, FOR, TO, DOWNTO, REPEAT, UNTIL, RETURN 運(yùn)算符 +二,-二,+, (2)修改單詞:不等號(hào)#改為 (3)增加條件語(yǔ)句的ELSE子句 (4)擴(kuò)充賦值運(yùn)算:+=和-二 (5)擴(kuò)充語(yǔ)句 FOR變量:二表達(dá)式TO表達(dá)式DO語(yǔ)句 FOR變量:二表達(dá)式DOWNTO表達(dá)式DO語(yǔ)句 (6)增加運(yùn)算:+和-(包括前后+、-運(yùn)算) (7)增加一維數(shù)組類型 (8)其他典型語(yǔ)言設(shè)施:
3、REPEAT語(yǔ)句UNTIL語(yǔ)句 三. 課程設(shè)計(jì)環(huán)境與工具 (1)計(jì)算機(jī)及操作系統(tǒng):PC機(jī),Win7 (2)實(shí)現(xiàn)工具:VC+ 6. 0, C語(yǔ)言 (3)教學(xué)型編譯程序:PL/O 四. 結(jié)構(gòu)設(shè)計(jì)說明 1) PL/O編譯程序的結(jié)構(gòu)圖 PL/O源程序 / 詞法分析程序 語(yǔ)法分析程序 出諳譽(yù)理程序 程序pLO 條件 condi 1: i on 表達(dá)式“的8 3 ion 代碼生成程序 項(xiàng) tern 目標(biāo)程序 | 因子:factor 編譯程序的結(jié)構(gòu)圖 圖2功能模塊調(diào)用關(guān)系圖“ 2) PL/0編譯程序的過程或函數(shù)的功能表 過程或函數(shù)名 簡(jiǎn)要功能說明 P10 主程序 error 出錯(cuò)處理,打印出錯(cuò)位置和錯(cuò)誤編碼
4、 getsym 詞法分析,讀取一個(gè)單詞 getch 漏掉空格,讀取一個(gè)字符 gen 生成標(biāo)代碼,并送入標(biāo)程序區(qū) t est 測(cè)試當(dāng)前單詞符號(hào)是否合法 block 分程序分析處理過程 enter 登錄名字表 position(函數(shù)) 查找標(biāo)識(shí)符在名字表中的位置 constdec1aration 常量定義處理 vardeclaration 變量說明處理 listode 列出L1標(biāo)代碼清單 statement 語(yǔ)句處理 expression 表達(dá)式處理 term 項(xiàng)處理 factor 因子處理 condition 條件處理 interpret 對(duì)H標(biāo)代碼的解釋執(zhí)行程序 base (函數(shù)) 通過靜態(tài)鏈
5、求出數(shù)據(jù)區(qū)的基地址 3) PL/0編譯程序的總體流程圖 4)詞法分析 詞法分析是編譯的第一個(gè)階段,它的主要任務(wù)是從左向右逐個(gè)字符地對(duì)源程 序進(jìn)行掃描,產(chǎn)生一個(gè)個(gè)單詞序列用于語(yǔ)法分析。PL/O詞法分析程序GETSYM的 功能是為語(yǔ)法分析提供單詞用的,是語(yǔ)法分析的基礎(chǔ),把輸入的字符串形式的源 程序分割成一個(gè)個(gè)單詞符號(hào)。經(jīng)過詞法分析程序分析出來的單詞,對(duì)語(yǔ)言固有的 單詞只給岀類別存放在全程變量SYM中,而對(duì)用戶定義的單詞(標(biāo)識(shí)符或常數(shù)) 既給出類別乂給值,其類別放在SYH中,值放在全程變量ID或全程變量NUM中, 全部單詞種類山編譯程序定義的純量類型SYMBOL給出,稱為語(yǔ)法詞匯表。 詞法分析器的分
6、析過程:調(diào)用GETSYM時(shí),它通過GETCH過程從源程序中獲 得一個(gè)字符。如果這個(gè)字符是字母,則繼續(xù)獲取字符或數(shù)字,最終可以拼成一個(gè) 單詞,查保留字表,如果查到為保留字,則把SYM變量賦成相應(yīng)的保留字類型值; 如果沒有查到,則這個(gè)單詞應(yīng)是一個(gè)用戶自定義的標(biāo)識(shí)符(可能是變量名、常量 名或是過程的名字),把SYM置為IDENT,把這個(gè)單詞存入ID變量。查保留字表 時(shí)使用了二分法查找以提高效率。如果Getch獲得的字符是數(shù)字,則繼續(xù)用Getch 獲取數(shù)字,并把它們拼成一個(gè)整數(shù)或?qū)崝?shù),然后把SYH置為INTEGER,并把拼成 的數(shù)值放入NUM變量。如果識(shí)別出其它合法的符號(hào)(比如:賦值號(hào)、大于號(hào).小 于
7、等于號(hào)等),則把SYM則成相應(yīng)的類型。如果遇到不合法的字符,把SYM置成 NULo 詞法分析程序GETSYM將完成下列任務(wù): (1)濾空格 (4)拼數(shù) (2)識(shí)別保留字 (5)拼復(fù)合詞 (3)識(shí)別標(biāo)識(shí)符 (6)輸出源程序 PL/0語(yǔ)法調(diào)用關(guān)系圖 5)語(yǔ)法分析 PL/0編譯程序的語(yǔ)法分析釆用了自頂向下的遞歸的子程 序法。語(yǔ)法分析同時(shí)也根據(jù)程序的語(yǔ)義生成相應(yīng)三元代碼, 并提供了出錯(cuò)處理的機(jī)制。語(yǔ)法分析主要山分程序分析過程 (BLOCK)、常量定義分析過程(ConstDeclaration)變量定 義分析過程(Vardeclaration)語(yǔ)句分析過程(Statement 表達(dá)式處理過程(Expression)、項(xiàng)處理過程(Term)、因子 處理過程(Factor)和條件處理過程(Condition)構(gòu)成。這 些過程在結(jié)構(gòu)上構(gòu)成一個(gè)嵌套的層次結(jié)構(gòu)。除此之外,還有 出錯(cuò)報(bào)告過程(Eiror)、代碼生成過程(Gen)、測(cè)試單詞合 法性及出錯(cuò)恢復(fù)過程(Test)、登錄名字表過程(Enter).查 詢名字表函數(shù)(Position)以及列出類PCODE代碼過程 (Listcode)作過語(yǔ)法分析的輔助
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- M10U2課文知識(shí)復(fù)習(xí)+鞏固練習(xí)-2023-2024學(xué)年五年級(jí)英語(yǔ)上冊(cè)單元速記·巧練(外研版三起)
- 區(qū)塊鏈技術(shù)應(yīng)用方案
- M7U2語(yǔ)法復(fù)習(xí)+鞏固練習(xí)-2023-2024學(xué)年五年級(jí)英語(yǔ)上冊(cè)單元速記·巧練(外研版三起)
- 養(yǎng)老院老年護(hù)理培訓(xùn)手冊(cè)
- 弦樂器市場(chǎng)環(huán)境與對(duì)策分析
- 電烤盤烹飪工具項(xiàng)目評(píng)價(jià)分析報(bào)告
- 企業(yè)內(nèi)部員工培訓(xùn)與考核制度
- 電腦計(jì)量加油機(jī)市場(chǎng)環(huán)境與對(duì)策分析
- 煎好的草藥項(xiàng)目可行性實(shí)施報(bào)告
- 互聯(lián)網(wǎng)金融產(chǎn)業(yè)實(shí)踐指南
- 陰莖損傷的護(hù)理課件
- 皮膚科住院醫(yī)師規(guī)范化培訓(xùn)內(nèi)容與標(biāo)準(zhǔn)
- 蘇教版六年級(jí)上冊(cè)數(shù)學(xué)認(rèn)識(shí)百分?jǐn)?shù)(課件)
- 抗美援朝抗美援朝
- 【自考復(fù)習(xí)資料】00510秘書實(shí)務(wù)(實(shí)用便攜筆記)
- GB 29436-2023甲醇、乙二醇和二甲醚單位產(chǎn)品能源消耗限額
- 人教PEP版六年級(jí)英語(yǔ)上冊(cè)期中試卷(含聽力音頻和答案)
- 如何建立良好的人際關(guān)系主題班會(huì)課件
- 事故油池基坑開挖專項(xiàng)施工方案
- 2023年10月自考00600高級(jí)英語(yǔ)試題及答案含評(píng)分標(biāo)準(zhǔn)
- 2023年高考全國(guó)乙卷物理真題分析
評(píng)論
0/150
提交評(píng)論