親,很抱歉,此頁已超出免費預覽范圍啦!
下載文檔到電腦,馬上遠離加班熬夜!
內容要點:
精選優質文檔----- 傾情為你奉上專心---專注--- 專業編譯技術課程設計班 級 計 算 機 0802 學 號 姓 名 龔 科 指導老師 朱 玉 全 二零一一年 七 月精選優質文檔----- 傾情為你奉上專心---專注--- 專業一、目的>是理論與實踐并重的課程,而其實驗課要綜合運用一、二年級所學的多門課程的內容,用來完成一個小型編譯程序。從而鞏固和加強對詞法分析、語法分析、語義分析、代碼生成和報錯處理等理論的認識和理解;培養學生對完整系統的獨立分析和設計的能力,進一步培養學生的獨立編程能力。二、任務及要求基本要求:1.詞法分析器 產生下述小語言的單詞序列這個精選優質文檔----- 傾情為你奉上專心---專注--- 專業IF i>0 i= 1;而絕對不要寫成IFi>0 i=1;因為對于后者,我們的分析器將無條件地將 IFI看成一個標識符。這個小語言的單詞符號的狀態轉換圖,如下圖:2.語法分析器 能識別由加 + 減- 乘* 除/ 乘方^ 括號()操作數所組成的算術表達式,其文法如下:E→E+T|E-T|TT→T*F|T/F|FF→P^F|Pp→(E精選優質文檔----- 傾情為你奉上專心---專注--- 專業使用的算法可以是:預測分析法;遞歸下降分析法;算符優先分析法;LR分析法等。3.中間代碼生成器 產生上述算術表達式的中間代碼(四元式序列)較高要求:1.擴充上述小語言的單詞;2.增加語法分析器的功能,能識別條件語句和循環語句等;3.增加中間代碼生成器的功能,能產生條件語句和循環語句等的中間代碼(四元式序列)4.增加報錯功能;5.將中間精選優質文檔----- 傾情為你奉上專心---專注--- 專業#define intconst 57#define minus 58#define div 59#define chengfang 60/*********************************/char ch=''\0''; /*從字符緩沖區讀取當前字符*/int count=0;精選優質文檔----- 傾情為你奉上專心---專注--- 專業struct fourexp{char op[10];struct aa arg1;struct aa arg2;int result;}fexp[200]; /*四元式的結構定義 */int ssp=0; /*指向 sstack 棧指針*/struct aa *pbuf=buf; /*指向詞法分析緩沖區的指針 */int nlen精選優質文檔----- 傾情為你奉上專心---專注--- 專業/*10*/ {2,-1,-1,3,4,-1,-1,5,-1,-1,-1,14,-1},/*11*/ {2,-1,-1,3,4,-1,-1,5,-1,-1,-1,15,-1},/*12*/ {-1,-1,103,-1,-1,-1,103,-1,103,-1,103,-1,-1},/*13*/ {2,-1,-1,3,4,-1,-1,5,-精選優質文檔----- 傾情為你奉上專心---專注--- 專業/*15*/ {-1,-1,-1,108,-1,9,10,108,-1,-1,-1}};函數清單:void main(); /*主程序*/void readline(); /* 從文件讀一行到緩沖區 */void readch(); /* 從緩沖區讀取一個字符 */int find
最新評論
暫無評論,趕快搶占沙發吧。