freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

編譯課設(shè)報(bào)告--pl0編譯器的中間代碼生成_-在線瀏覽

2025-04-09 09:14本頁面
  

【正文】 法描述圖 圖 232 分程序語法描述圖 圖 233 語句語法描述 圖 234 條件語句描述圖 圖 235 表達(dá)式語法描述 圖 236 項(xiàng)語法描述 圖 237 因子語法描述 3 概要設(shè)計(jì) 概要設(shè)計(jì)(體現(xiàn)系統(tǒng)的設(shè)計(jì)思路和主要功能) 該編譯器采用 JAVA 語言編寫,共采用了七個(gè)類, 48 個(gè)方法(函數(shù))用來功能實(shí)現(xiàn),其中 pl0 類為 main 方法所在的類,是整個(gè)編譯主程序類和主界面框架類。系統(tǒng)設(shè)計(jì)思路如圖31。 接著開始進(jìn)行詞法分析,詞法分析程序的主要任務(wù)是對(duì)構(gòu)成源程序的字符串從左到右的掃描,逐個(gè)字符地讀入源程序字符并按照構(gòu)詞規(guī)則切分成一個(gè)一個(gè)具有獨(dú)立意義的單詞。 詞法分析是編譯過程中的第一個(gè)階段,在語法分析前進(jìn)行 。在語法分析過程中,將變量符號(hào)存入符號(hào)表中,語法分析完了之后就是打印中間代碼的四元式形式。(如表 1) 表 31 PL/0 的各類及其方法的功能簡單描述 PL/0 編譯器用到的類及其方法 功能簡單介紹 Pl0 類 主程序類 Main()方法 程序入口 Getsym 類 詞法分析列,用于顯示錯(cuò)誤行號(hào)、類型號(hào)和內(nèi)容 Getsym()方法 構(gòu)造函數(shù),定義保留字表;由文件名,建立一個(gè)輸入流。其中分析PL/0 程序用例中又包含了詞法分析用例、語法分析用例、和生成四元式用例。 4 詳細(xì)設(shè)計(jì) 系統(tǒng)的類圖 圖 411 系統(tǒng)類圖 主要算法的流程圖 圖 421 PL/0 編譯程序的結(jié)構(gòu)圖 圖 422 PL/0 編譯 程序總體流程圖 輸出數(shù)據(jù) 詞法分析程序 表 格 管 理 程 序 語法分析程序 中間代碼生成程序 出 錯(cuò) 處 理 程 序 PL/0主執(zhí)行程序 PL/0源程序 表示子程序 表示數(shù)據(jù)流 表示調(diào)用關(guān)系 開始 置初值 調(diào)用 getsym 獲取單詞 調(diào)用 block 過程進(jìn)行分析 當(dāng)前單詞是否是源程序結(jié)束符“ .”? 當(dāng)前單詞是否是源程序結(jié)束符“ .”? 輸出中間代碼四元式和符號(hào)表至界面 結(jié)束 出錯(cuò) 打印錯(cuò)誤 Y N 圖 423 詞法分析過程 getsym getsym k=0 ch=空 ? getch ch是數(shù)字 ? ch是字母 ? k10? a[k]=ch k=k+1 拼數(shù),將拼數(shù)后的值送num sym= number 把該字符轉(zhuǎn)換成對(duì)應(yīng)單詞,或拼復(fù)合單詞,將其類別送 sym中 N Y N Y getch ch是字母或數(shù)字 ? N Y N Y 返回 N Y id=a id是否是保留字? Y N sym=ident 相應(yīng)保留字類別送 sym中 返回 圖 424 block 過程的流程圖 圖 425 statement 語句分析流程圖 在 table表中登記過程名 調(diào)用 statement語句處理程序 遞歸調(diào)用 block參數(shù)lev+1 取單詞 getToken sym=procsym? Y N Sym=語句的開始符 ? 返回 出錯(cuò)處理 Y N Y block N 初始化 常量說明處理 sym=constsymm? sym=varsym? 變量說明處理 Y N 語句 條件 表達(dá)式 項(xiàng) 因子 數(shù)據(jù)分析與定義 token 類 用于存放讀取的 token 單詞 class token{ private String sym = 。 // 保存 token 的內(nèi)容 public int lineNum。 String kind = null。 // 值 int level。// 過程的入口代碼地址 } 錯(cuò)誤處理類 class erro{ public static String errorString = 。 int linenumber。 } midcode 類 表示 midcode 指令 class midcode{ String op = 。 // 第二個(gè)參數(shù):操作數(shù) 1 String arg2 = 。 // 第四個(gè)參數(shù):結(jié)果 中間參數(shù) } 系統(tǒng)界面設(shè)計(jì) 圖 441 系統(tǒng)界面 這次時(shí)間比較緊,所以界面部分就只是以實(shí)現(xiàn)最基本的功能為主,所以界面比較簡單,只有打開和分析兩個(gè)按鈕。若源程序有錯(cuò)誤,則中間代碼和符號(hào)表項(xiàng)不輸出文字,在錯(cuò)誤分析內(nèi)將會(huì)顯示程序的錯(cuò)誤信息和錯(cuò) 誤數(shù)量。其中 文件中的程序代碼包含了 conset 常量, var 變量, procedure 過程聲明, begin、end 關(guān)鍵字,復(fù)雜表達(dá)式賦值, read、 wr
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1