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

正文內(nèi)容

編譯原理課程設(shè)計(jì)--pl0語言的擴(kuò)充-資料下載頁

2025-06-04 12:16本頁面
  

【正文】 。//無條件跳轉(zhuǎn)到循環(huán)開始點(diǎn) code[cx2].a=cx。 //回填循環(huán)結(jié)束點(diǎn)的地址 } else error(29)。 //for 語句中少了 do } } } else error(19)。 //for 后面為賦值語句,賦值語句左部是變量,缺少變量 } ...// 此處 省略 部分未 修改 過的 代碼 } 17 3.一維數(shù)組 1)設(shè)置一維數(shù)組的左右括號(hào): ssym[39。[39。]=lepa。 //一維數(shù)組的左括號(hào) [ ssym[39。]39。]=ripa。 //一維數(shù)組的右括號(hào) ] 2)增加指令: strcpy(amp。(mnemonic[gar][0]),gar)。 strcpy(amp。(mnemonic[sar][0]),sar)。 strcpy(amp。(mnemonic[shd][0]),shd)。 strcpy(amp。(mnemonic[del][0]),del)。 strcpy(amp。(mnemonic[jud][0]),jud)。 strcpy(amp。(mnemonic[tra][0]),tra)。 enum fct{ lit, opr, lod, sto, cal, inte, jmp, jpc, gar, sar, shd, del, jud, tra, }。 由于指令有原來的 8條拓展到了 14條,故進(jìn)行如下修改 define fctnum 14 增加的指令意義如下: gar: 根據(jù)棧頂?shù)钠频刂窂臄?shù)組中取值到新的棧頂 sar: 根據(jù)次棧頂?shù)钠频刂钒褩m數(shù)闹荡嫒霐?shù)組 shd: 將棧頂?shù)闹迪乱频酱螚m?,棧頂出棧,即次棧頂成為棧? del: 出棧頂 jud: 判斷數(shù)組下標(biāo)合法性 tra: 將數(shù)組的下標(biāo)范圍入棧, gendo(tra,0,數(shù)組下標(biāo)最大值 )。 3)增加標(biāo)識(shí)符類型屬性: enum object{ constant, variable, procedur, array, //數(shù)組 }。 4) 在 block 函數(shù)中添加如下代碼: for(i=tx0+1。i=tx。i++) { switch(table[i].kind) { case constant: /*常量名字 */ ...//此處省略 部分未修改過的代碼 case variable: /*變量名字 */ ...//此處省略部分未修改過的代碼 case procedur: /*過程名字 */ ...//此處省略部分未修改過的代碼 18 case printf(%d vararray %s ,i,table[i].name)。 printf(lev=%d addr=%d size=%d\n,table[i].level,table[i].adr,table[i].size)。 fprintf(fas,%d vararray %s,i,table[i].name)。 fprintf(fas,lev=%d addr=%d size=%d\n,table[i].level,table[i].adr,table[i].size)。 } } } 5)在 enter()函數(shù)添加如下代碼: switch(k) { case constant: /*常量名字 */ ...//此處省略部分未修改過的代碼 case variable: /*變量名字 */ ...//此處省略部分未修改過的代碼 case procedur: /*過程名字 */ ...//此處省略部分未修改過的代碼 case array: /*數(shù)組名字 */ table[(*ptx)].level=lev。 table[(*ptx)].adr=(*pdx)arraysize。 table[(*ptx)].size=arraysize。 break。 } 6)在 Vardeclaration()函數(shù)中添加數(shù)組的變量聲明,代碼如下: int vardeclaration(int * ptx,int lev,int * pdx) { ...//此處省略部分未修改過的代碼 case gar: //根據(jù)棧頂?shù)钠频刂窂臄?shù)組中取值到新的棧頂 s[t]=s[base(,s,b)++s[t1]]。 //偏移地址為上一層過程的基址 +當(dāng)前指令的層次 +棧頂?shù)钠频刂? t++。 break。 case t。 s[base(,s,b)++s[t1]]=s[t]。 //t。 break。 case t。 s[t1]=s[t]。 19 break。 case t。 break。 case t。 if(s[t1]0||s[t1]=s[t]) { error(28)。 printf(\n運(yùn)行問題出錯(cuò) ,程序退出!請(qǐng)輸入任意數(shù)字退出: )。 scanf(%d,amp。p)。 exit(1)。 } break。 case s[t]=。 t++。 break。 ...// 此處 省略 部分未 修改 過的 代碼 } 六. 調(diào)試測(cè)試 1.+= = *= /= ++ 的測(cè)試 20 圖 61 測(cè)試文件 圖 62 += = *= /= ++ 的測(cè)試 結(jié)果 1 21 圖 62 += = *= /= ++ 的測(cè)試 結(jié)果 2 圖 64 FOR 語句的測(cè)試 文件 圖 65 FOR 語句的測(cè)試 結(jié)果 22 圖 66 數(shù)組 的測(cè)試 文件 圖 66 數(shù)組 的測(cè)試 結(jié)果 1 圖 66 數(shù)組 的測(cè)試 結(jié)果 2 23 4. 綜合調(diào)試 綜合測(cè)試是定語一個(gè) 1 維數(shù)組,數(shù)組每個(gè)元素的值等于它的位置。然 后依次輸出數(shù)組元素。再次,對(duì)數(shù)組元素分別進(jìn)行 += = *= /= ++ 運(yùn)算 ,用 FOR語句輸出結(jié)果。最后用 FOR語句對(duì)其進(jìn)行求和,再次輸出結(jié)果。 圖 67 綜合 的測(cè)試 文件 24 圖 68 綜合結(jié)果的代碼 25 圖 68 綜合結(jié)果的中間代碼及其運(yùn)算結(jié)果 七. 課程設(shè)計(jì)總結(jié) 本次課程設(shè)計(jì)的 過程中我主要根據(jù)課本中的實(shí) 現(xiàn)思想及算法 以及源程序的方法 編寫 和修改 程序,體現(xiàn)以課本知識(shí)的應(yīng)用為主,在學(xué)習(xí)了 PL/0語言以及詞法分析等知識(shí) 的基礎(chǔ)上,以能夠更加熟練的應(yīng)用所學(xué)知識(shí),并能結(jié)合一些著名算法來實(shí)現(xiàn)對(duì)一些實(shí)際問題的應(yīng)用,例如, else 語句的實(shí)驗(yàn) 等,從而更為深刻理 編譯原理 的內(nèi)涵,熟悉它們各自的應(yīng)用場(chǎng)合及方法。有些在平時(shí)課程中并沒有掌握的內(nèi)容在這次課程設(shè)計(jì)中都是先通過看課本學(xué)懂了,然后再在課程設(shè)計(jì)中加深印象,實(shí)現(xiàn)算法的應(yīng)用和擴(kuò)展。程序設(shè)計(jì)設(shè)計(jì)語言采用 C, 程序運(yùn)行平臺(tái)為 Windows XP,編譯器為 Microsoft Visual C++。 通過本次實(shí)驗(yàn), 熟悉了 PL/0的詞法分析 。設(shè)計(jì)前感覺很簡單,但當(dāng)自己動(dòng)手去做后才 26 發(fā)現(xiàn)挺多要注意的東西。例如設(shè)置保留字名字 ,按照字母順序,因?yàn)槌绦虿檎視r(shí)用到了折半查找法。 通過這次課程設(shè)計(jì)的 練習(xí),認(rèn)識(shí)到知識(shí)的遷移運(yùn)用,理論應(yīng)用實(shí)際和相互間的密切聯(lián)系,感受到理論知識(shí)的重要,在今后的學(xué)習(xí)中一定會(huì)更加努力,認(rèn)真。體會(huì)到自己知識(shí)有所缺乏,和個(gè)人能力的有限,只有通過同學(xué)、老師間的密切配合才能完成一項(xiàng)不錯(cuò)的工作。從中也體會(huì)到了學(xué)習(xí)中的樂趣,可以自由的創(chuàng)作自己喜歡的東西并自己調(diào)試 。 在一個(gè)星期的課程設(shè)計(jì)中,我較為 全面系統(tǒng)的理解了編譯原理程序構(gòu)造的原理和基本實(shí)現(xiàn)方法。自己對(duì)修改的方案比較滿意,在擴(kuò)充功能上去實(shí)現(xiàn)自己希望 PL0能具備的功能。在條件選擇和循環(huán)的語句擴(kuò)展上比較有心得,增加了 FOR語句。實(shí)現(xiàn)了 ++以及 ++等擴(kuò)展功能。印象比較深刻的是一維數(shù)組的擴(kuò)展,擴(kuò)展此功能時(shí),我先設(shè)計(jì)方案,明確需要修改的地方。然而雖然思路明確,但擴(kuò)展時(shí)卻出現(xiàn)了很多意想不到的問題,結(jié)果花費(fèi)了大量的時(shí)間調(diào)試,再加上找參考書,咨詢同學(xué),還是順利完成了這項(xiàng)擴(kuò)展功能。 這次的課程設(shè)計(jì)可以說比較順利,但是過程也有一定的曲折 。在此期間我們也失落過,也曾一 度熱情高漲。從開始時(shí)滿富盛激情到最后汗水背后的復(fù)雜心情,點(diǎn)點(diǎn)滴滴無不令我回味無長。 通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固。 此次課程設(shè)計(jì) ,學(xué)到了很多課內(nèi)學(xué)不到的東西,比如獨(dú)立思考解決問題,出現(xiàn)差錯(cuò)的隨機(jī)應(yīng)變,和與人合作共同提高,都受益非淺 ,今后的制作應(yīng)該更輕松,自己也都能扛的起并高質(zhì)量的完成項(xiàng)目。 【參考文獻(xiàn)】 [1] 張素琴,呂映芝,蔣維杜,戴桂蘭編著 . 編譯原理(第 2版) . 北京:清華大學(xué)出版社, 2021. [2] 道客巴巴 編譯原理 pl0課程設(shè)計(jì) 課程設(shè)計(jì)
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1