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

正文內(nèi)容

編譯技術(shù)課程設(shè)計(jì)報(bào)告-詞法分析、語(yǔ)法分析、中間代碼生成(編輯修改稿)

2025-06-27 13:32 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 F→ i =i,lexval 第 11 頁(yè) ( 2) 數(shù)據(jù)結(jié)構(gòu) 與 函數(shù)說(shuō)明 Strn 用來(lái)存放臨時(shí)變量的序號(hào)。 temp 用來(lái)存放數(shù)組的下表,在主程序中語(yǔ)法分析結(jié)束后,置 0. 定義函數(shù) newtemp()用于門(mén)生一個(gè)新的臨時(shí)變量的名字,具體實(shí)現(xiàn)時(shí)每 產(chǎn)生一個(gè) T,就及時(shí)送到符號(hào)表中,也可以不進(jìn)符號(hào)表,直接將單詞值用整 數(shù)碼表示。 定義函數(shù) siyuan() ,輸出一個(gè)四元式。 定義函數(shù) YE() 進(jìn)行 中間代碼生成 ( 3) 流程圖 第 12 頁(yè) 五、 程序運(yùn)行 結(jié)果 注:本程序?qū)τ谛稳?a1 的標(biāo)識(shí)符無(wú)法作為整體識(shí)別 詞法測(cè)試: 表達(dá)式正確: 2*3+4/( as5) **6 第 13 頁(yè) 詞法分析: 第 14 頁(yè) 語(yǔ)法分析 第 15 頁(yè) 四元式: 表達(dá)式錯(cuò)誤: 2*( 32 第 16 頁(yè) 六、總結(jié) 這次課程設(shè)計(jì)使我對(duì)編譯原理有了進(jìn)一步的了解,更加鞏固了所學(xué)習(xí)的知識(shí)。編譯原理是一門(mén)比較抽象的課程,也比較難以學(xué)得透 , 有很多東西很模糊的。編譯這個(gè)概念有一定的了解。由于課堂上,學(xué)習(xí)的東西比較淺,難免眼高手低,故而,通過(guò)實(shí)驗(yàn)和課程,遇到了很多課本上 面見(jiàn)不到的問(wèn)題,完成實(shí)驗(yàn)后,個(gè)人在成就感的同時(shí),也學(xué)習(xí)到了編程的具體過(guò)程中的很多知識(shí)。 程序代碼: //include include iostream includestring using namespace std。 include include includesstream int i,j,k,flag,number,status。 /*status which is use to judge the string is keywords or not!*/ char ch。 char words[10] = { }。 char program[500]。 int flags[500]。 //存儲(chǔ)輸入句子 string t[500]。//標(biāo)括識(shí)符 int temp=0。 //數(shù)組下標(biāo) int is_right。 //判斷輸出信息 //詞法分析 int Scan(char program[]) { char *keywords[5] = {while,if,else,switch,case}。 //關(guān)鍵字 number=0。 status=0。 j=0。 ch=program[i++]。 //遍歷 if ((ch = 39。a39。) amp。amp。 (ch = 39。z39。 )||(ch=39。A39。)amp。amp。(ch=39。Z39。)) //字母 { while ((ch = 39。a39。) amp。amp。 (ch = 39。z39。 )||(ch=39。A39。)amp。amp。(ch=39。Z39。)) { words[j++]=ch。 ch=program[i++]。 } 第 17 頁(yè) i。 words[j++] = 39。\039。 for (k = 0。 k 5。 k++) if (strcmp (words,keywords[k]) == 0) //判斷是否為關(guān)鍵字 switch(k) { case 0:{ flag = 1。 status = 1。 break。 } case 1:{ flag = 2。 status = 1。 break。 } case 2:{ flag = 3。 status = 1。 break。 } case 3:{ flag = 4。 status = 1。 break。 } case 4:{ flag = 5。 status = 1。 break。 } } if (status == 0) { flag = 6。 //標(biāo)識(shí)符 } } else if ((ch = 39。039。) amp。amp。 (ch = 39。939。)) //數(shù)字 { number = 0。 while ((ch = 39。039。 ) amp。amp。 (ch = 39。939。 )) { number = number*10+(ch39。039。)。 ch = program[i++]。 第 18 頁(yè) } flag = 7。 i。 } else switch (ch) //運(yùn)算符和標(biāo)點(diǎn)符號(hào) { case 39。=39。:{ if (ch == 39。=39。) words[j++] = ch。 words[j] = 39。\039。 ch = program[i++]。 if (ch == 39。=39。) { words[j++] = ch。 words[j] = 39。\039。 flag = 14。 } else { i。 flag = 8。 } break。 } case39。39。:{ if (ch == 39。39。) words[j++] = ch。 words[j] = 39。\039。 ch = program[i++]。 if (ch == 39。=39。) { words[j++] = ch。 words[j] = 39。\039。 flag =14。 } else { i。 flag = 14。 } break。 } 第 19 頁(yè) case39。39。:{ if (ch == 39。39。) words[j++] = ch。 words[j] = 39。\039。 ch = program[i++]。 if (ch == 39。=39。) { words[j++] = ch。 words[j] = 39。\039。 flag = 14。 } else { i。 flag = 14。 } break。 } case39。!39。:{ if (ch == 39。!39。) words[j++] = ch。 words[j] = 39。\039。 ch = program[i++]。 if (ch == 39。=39。) { words[j++] = ch。 words[j] = 39。\039。 flag = 14。 } else { i。 flag = 18。 } break。 } case39。+39。:{ if (ch == 39。+39。) words[j++] = ch。 words[j] = 39。\039。 ch = program[i++]。 if (ch == 39。=39。) 第 20 頁(yè) { words[j++] = ch。 words[j] = 39。\039。 flag = 9。 } else if (ch == 39。+39。) { words[j++] = ch。 words[j] = 39。\039。 flag = 9。 } else { i。 flag = 9。 } break。 } case39。39。:{ if (ch == 39。39。) words[j++] = ch。 words[j] = 39。\039。 ch = program[i++]。 if (ch == 39。=39。) { words[j++] = ch。 words[j] = 39。\039。 flag = 12。 } else if( ch == 39。39。) { words[j++] = ch。 words[j] = 39。\039。 flag = 12。 } else { i。 flag = 12。 } break。 } 第 21 頁(yè) case39。*39。:{ if (ch == 39。*39。) words[j++] = ch。 words[j] = 39。\039。
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1