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

正文內(nèi)容

編譯課設(shè)報告--pl0編譯器的中間代碼生成_(已修改)

2025-02-20 09:14 本頁面
 

【正文】 課程設(shè)計報告 ( — 年度第一學(xué)期 ) 名 稱: 編譯技術(shù)課程設(shè)計 題 目: PL/0 語言編譯器的中間代碼生成 院 系: 班 級: 學(xué) 號: 學(xué)生姓名: 指導(dǎo)教師 : 設(shè)計周數(shù): 一周 成 績: 日期: 年 月 日 1 課程設(shè)計的目的和要求 課程設(shè)計的目的 本次設(shè)計的時間為 1 周,目的是通過使用高級語言實現(xiàn)部分算法加強(qiáng)對編譯技術(shù)和理論的理解。設(shè)計的題目要求具有一定的規(guī)模,應(yīng)涵蓋本課程內(nèi)容和實際應(yīng)用相關(guān)的主要技術(shù),同時 使大家將理論與實際應(yīng)用結(jié)合起來,受到軟件設(shè) 計等開發(fā)過程的全面訓(xùn)練,從而提高軟件開發(fā)的能力。 課程設(shè)計的要求 要求用遞歸子程序法 /或預(yù)測分析法實現(xiàn)對表達(dá)式、各種說明語句、控制語句進(jìn)行語法分析。 若語法正確,則用語法制導(dǎo)翻譯法進(jìn)行語義翻譯:對說明語句,要求將說明的各符號記錄到相應(yīng)符號表中;對可執(zhí)行語句,應(yīng)產(chǎn)生出四元式中間代碼并填寫到三地址碼表中; 若語法錯誤,要求指出出錯性質(zhì)和出錯位置(行號)。出錯處理應(yīng)設(shè)計成一個出錯處理子程序。 2 系統(tǒng)描述 PL/0 的編譯程序和目標(biāo)程序的解釋執(zhí)行程序都是用 JAVA 語言書寫的,因此 PL/0 語言 可在配備 JAVA 語言的任何機(jī)器上實現(xiàn)。 本 次課設(shè)開發(fā)平臺即為 JAVA。用遞歸子程序法實現(xiàn)了對表達(dá)式、各種說明語句、控制語句進(jìn)行語法的分析。其中,對各個變量符號保存到了符號表中。對可執(zhí)行語句,轉(zhuǎn)化成四元式中間代碼進(jìn)行輸出。本程序中,通過出錯處理子程序,也進(jìn)行了語法的錯誤的記錄,并且輸出了出錯的行號和出錯原因。 該程序的輸入是打開 test 文件,通過文件輸入流讀入,輸出有生成的中間代碼、符號表內(nèi)容、錯誤分析三部分內(nèi)容,分別用 java 界面控件顯示出來。 PL/0 語言的描述 PL/0 語言的編譯程序是一個編譯解 釋執(zhí)行系統(tǒng)。 PL/0 的目標(biāo)程序為假想棧式計算機(jī)的匯編語言,與具體計算機(jī)無關(guān)。 其編譯過程采用一趟掃描方式,以語法分析類為核心,詞法分析和代碼生成類都作為一個獨立的類,當(dāng)語法分析需要讀單詞時就調(diào)用詞法分析程序,而當(dāng)語法分析正確需要生成相應(yīng)的目標(biāo)代碼時,則調(diào)用代碼生成程序。 用表格管理程序建立變量、常量和過程表示符的說明與引用之間的信息聯(lián)系。 用出錯處理程序?qū)υ~法和語法分析遇到的錯誤給出在源程序中出錯的位置和錯位性質(zhì)。 當(dāng)源程序編譯正確時, PL/0 編譯程序自動調(diào)用解釋執(zhí)行程序,對目標(biāo)代碼進(jìn)行解釋執(zhí)行,并按用戶程 序的要求輸入數(shù)據(jù)和輸出運行結(jié)果。 PL/0 文法的描述 在計算機(jī)科學(xué)中,文法是編譯原理的基礎(chǔ),是描述一門程序設(shè)計語言和實現(xiàn)其編譯器的方法。文法的描述多用 BNF(巴克斯范式 ),而另一個重要的概念:正則表達(dá)式,也是文法的另一種形式。 PL/0 文法的 EBNF 表示: 程序 ::= 分程序 . 分程序 ::= [常量說明部分 ][變量說明部分 ][過程說明部分 ]語句 常量說明部分 ::= const常量定義 {,常量定義 }。 常量定義 ::= 標(biāo)識符 =無符號整數(shù) 無符號整 數(shù) ::= 數(shù)字 {數(shù)字 } 標(biāo)識符 ::= 字母 {字母 |數(shù)字 } 變量說明部分 ::= var標(biāo)識符 {, 標(biāo)識符 }。 過程說明部分 ::= 過程首部 分程序 {。過程說明部分 } 過程首部 ::= procedure標(biāo)識符 。 語句 ::= 賦值語句 |條件語句 |當(dāng)循環(huán)語句 |過程調(diào)用語句 |復(fù)合語句 |讀語句 |寫語句 |空 賦值語句 ::= 標(biāo)識符 := 表達(dá)式 表達(dá)式 ::= [+|]項 {加法運算符 項 } 項 ::= 因子 {乘法運算符 因子 } 因子 ::= 標(biāo)識符 |無符號整數(shù) | ‘ ( ’ 表達(dá)式 ‘ ) ’ 加法運算符 ::= +| 乘法運算符 ::= *|/ 條件 ::= 表達(dá)式 關(guān)系運算符 表達(dá)式 |odd表達(dá)式 關(guān)系運算符 ::= =|||=||= 條件語句 ::= if條件 then語句 當(dāng)循環(huán)語句 ::= while條件 do語句 過程調(diào)用語句 ::= call標(biāo)識符 復(fù)合語句 ::= begin語句 {。語句 }end 讀語句 ::= read ‘ ( ’標(biāo)識符 {, 標(biāo)識符 } ‘ ) ’ 寫語句 ::= write ‘ ( ’表達(dá)式 {, 表達(dá)式 } ‘ ) ’ 字母 ::= a|b|c|d? ..x|y|z 數(shù)字 ::= 0|1|2|3? ...8|9
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1