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

正文內容

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

2025-02-20 09:14 本頁面
 

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