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

正文內(nèi)容

編譯技術(shù)課程設(shè)計(jì)報(bào)告-詞法分析、語法分析、中間代碼生成-文庫吧資料

2025-05-23 13:32本頁面
  

【正文】 { words[j++] = ch。 if (ch == 39。\039。) words[j++] = ch。:{ if (ch == 39。 } case39。 flag = 14。 flag = 14。 words[j] = 39。=39。 ch = program[i++]。 words[j] = 39。39。39。 } break。 } else { i。\039。) { words[j++] = ch。 if (ch == 39。\039。) words[j++] = ch。:{ if (ch == 39。 } case39。 flag = 8。 flag = 14。 words[j] = 39。=39。 ch = program[i++]。 words[j] = 39。=39。=39。 i。 ch = program[i++]。039。939。amp。039。)) //數(shù)字 { number = 0。 (ch = 39。) amp。 //標(biāo)識符 } } else if ((ch = 39。 break。 } case 4:{ flag = 5。 status = 1。 break。 } case 2:{ flag = 3。 status = 1。 break。 k++) if (strcmp (words,keywords[k]) == 0) //判斷是否為關(guān)鍵字 switch(k) { case 0:{ flag = 1。 for (k = 0。 words[j++] = 39。 ch=program[i++]。Z39。amp。A39。z39。amp。a39。Z39。amp。A39。z39。amp。a39。 ch=program[i++]。 status=0。 //判斷輸出信息 //詞法分析 int Scan(char program[]) { char *keywords[5] = {while,if,else,switch,case}。//標(biāo)括識符 int temp=0。 int flags[500]。 char words[10] = { }。 include include includesstream int i,j,k,flag,number,status。由于課堂上,學(xué)習(xí)的東西比較淺,難免眼高手低,故而,通過實(shí)驗(yàn)和課程,遇到了很多課本上 面見不到的問題,完成實(shí)驗(yàn)后,個(gè)人在成就感的同時(shí),也學(xué)習(xí)到了編程的具體過程中的很多知識。編譯原理是一門比較抽象的課程,也比較難以學(xué)得透 , 有很多東西很模糊的。 定義函數(shù) siyuan() ,輸出一個(gè)四元式。 } ( 1)屬性文法 E→ E’ +T =E’ .val+ E→ E’’ T =E’’ . E→ T = T→ T’ *F =T’ .val* T→ T’’ /F =T’’ .val/ T→ F = F’ → P**F F’ .val=** F’ → P F’ .val= P→ (E) = F→ i =i,lexval 第 11 頁 ( 2) 數(shù)據(jù)結(jié)構(gòu) 與 函數(shù)說明 Strn 用來存放臨時(shí)變量的序號。 } else is_right=0。 if(flags[temp]==17) //) { coutP(E)endl。 temp++。 temp++。如果是,調(diào)用 F1 函數(shù),返回。 } } P 函數(shù) : 檢查是否標(biāo)識符,如果是,調(diào)用 P1 函數(shù),如果不是,檢查是否是數(shù)值,第 10 頁 如果是,調(diào)用 P1函數(shù),如果不是,檢查是否是’ (’,如果不是,進(jìn)行出錯(cuò)處理,置 is_right為 0。ε ?endl。amp。amp。amp。amp。amp。 F()。**Fendl。 F1()。endl。 F1 函數(shù):判斷是不是” **” ,如果是,調(diào)用 F 函 數(shù),如果不是,進(jìn)行出錯(cuò)處理,置 is_right 為 0。 } else is_right=0。ε endl。 } else if (flags[temp]!=0||flags[temp]!=17)//如果是非 或非) { coutT39。 T1()。39。T39。 } void T2() { if(flags[temp]==10||flags[temp]==13)//如果是乘或除 第 9 頁 { coutT39。 F()。/Fendl。 F()。*Fendl。 T2()。endl。 代碼: void T() { coutTFT39。 T 函數(shù) : 調(diào)用 F 函數(shù) , 調(diào)用 P 函數(shù) ,返回后看是否是’ *’或’ /’,如果是,則調(diào)用 T1 函數(shù),再調(diào)用 T2 函數(shù),如果不是,進(jìn)行出錯(cuò)處理,置 is_right 為 0。 return 。39。 第 8 頁 E2()。endl。E39。39。 } else is_right=0。 temp++。 } else if(flags[temp]==12)//減號 { coutE39。 temp++。 } void E1() { if(flags[temp]==9) //加號 { coutE39。 T()。39。 E1 函數(shù):判斷是不是” +”或者“ ” 如果是,調(diào)用 F 函數(shù),如果不是,進(jìn)行出錯(cuò) 處理,置 is_right 為 0。其中 is_right 為設(shè)定的標(biāo)志,初值 為 1,如果在調(diào)用子函數(shù)的過程中如果有錯(cuò)誤,則置 is_right 為 0。amp。 如果是其他單詞表的符號,則將他們的 flags[]置為相應(yīng)的種別碼,并將字符存到words[] 中返回主函數(shù)輸出。 ( 3) 函數(shù)說明 在 Scan ()子函數(shù)中,先全部初始化,然后讀一個(gè)字符,分析它是什么類型 :如果是字母類型,則接著往下讀,直到讀到非字母的字符,存入 words[10]中,依次對比關(guān)鍵字表中的元素,如果相同,則將 flags[]置為相應(yīng)的種別碼,如果全都掃描后沒發(fā)現(xiàn)相同的關(guān)鍵字,則為普通的標(biāo)識符 ,返回主函數(shù)輸出。 t[num]按順序存放讀到的字符,為下面語義分析做準(zhǔn)備。 flags[500] 存放單詞符號的種別碼。 39。 39。 三、實(shí)驗(yàn)環(huán)境 開發(fā)環(huán)境 VC++; Visual Studio; Java開發(fā)環(huán)境 語言 C; C++; C; Java 說明:課程設(shè)計(jì)可以使用任何一種語言工具, 課程設(shè)計(jì)報(bào)告中請按照自己實(shí)際采用的開發(fā)工具及技術(shù)來寫。 這個(gè)小語言的單詞符號的狀態(tài)轉(zhuǎn)換圖,如下圖: 2. 語法分析器 能識別由加 + 乘 * 乘方 ** 括號()操作數(shù)所組成的算術(shù)表達(dá)式,其文法如下: 第 4 頁 E→ E+T|T T→ T*F|F F→ P**F|P P→ (E)|i 使用的算法可以是:預(yù)測分析法 ; 遞歸下降分析法; LR 分析法等。 而絕對不要寫成 ifi0 i=1。 再次 ,如果關(guān)鍵字、標(biāo)識符和常數(shù)之間沒有確定的運(yùn)算符或界符作間隔,則必須至少用一個(gè)空白符作間隔(此時(shí),空白符不再是完全沒有意義的了)。但把它們(及其種別編碼)預(yù)先安排在一張表格中(此表叫作保留字表)。例如,下面的寫法是絕對禁止的: if( 5) =x 其次 ,由于把關(guān)鍵字作為保留字,故可以把關(guān)鍵字作為一類特殊標(biāo)示符來處理。 二、任務(wù) 及要求 基本要求: 1. 詞法分析器 產(chǎn)生下述小語言的單詞序列 這個(gè) 小語言 的所有的單詞符號,以及它們的種別編碼和內(nèi)碼值如下表: 單詞符號 種別編碼 助記符 內(nèi)碼值 while 1 while ? if 2 if ? else 3 else ? switch 4 switch ? case 5 case ? 標(biāo)識符 6 id 符號表入口地址 常數(shù) 7 num 常數(shù)表入口地址 = 8 = ? + 9 + ? * 10 * ? ** 11 ** ? ? 12 ? ? / 13 / ? 14 relop MT = 14 relop ME 14 rel
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1