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

正文內(nèi)容

基于算符優(yōu)先分析方法的語(yǔ)法制導(dǎo)翻譯程序設(shè)計(jì)編譯課程設(shè)計(jì)報(bào)告書-資料下載頁(yè)

2025-06-24 00:55本頁(yè)面
  

【正文】 eak。 case 39。39。:return 1。break。 case 39。=39。:return 0。break。 default:return 2。break。 }}int NewTemp(int t[3]){ Fp++。 four[Fp]=new four_item(t[1],t[0],t[2])。 four[Fp]DispFour()。 coutendl。 return Fp+300。}////////////////////////////////////////////////////////////////////////////////////////////////dispitemvoid DispItem(int i){ if(i0||i400) { coutError!endl。 return 。 } if(i100) { if(i==3) cout**。 else coutcost[0][i]。 return。 } else if(i200) { coutSign[i100]。 return 。 } else if(i300) { coutEi200。 } else coutTi300。}void DispIndirect(int i){ if(i0||i=400) { coutError!endl。 return。 } if(i100) { if(i==3) cout**。 else coutcost[0][i]。 } else if(i200) { coutSign[i100]。 } else if(i300) { DispIndirect(Temp[i200])。 } else coutTi300。}int Merge(int *ch,int ll){ (ch,ll)。 if(ll==1) { Temp[++Tp]=ch[0]。 cout合并:。 DispItem(ch[0])。 cout==。 DispItem(Tp+200)。 coutendl。 return Tp+200。 } else if(ch[0]==5amp。amp。ch[2]==6) { Temp[++Tp]=ch[1]。 cout合并:(。 DispItem(ch[1])。 cout)==。 DispItem(Tp+200)。 coutendl。 return Tp+200。 } else if(ch[0]100amp。amp。ch[2]100amp。amp。ch[1]100) { cout合并:。 DispItem(ch[0])。 DispItem(ch[1])。 DispItem(ch[2])。 cout==。 DispItem(Fp+301)。 cout39。\t39。 return NewTemp(ch)。 } else { cout合并失??!endl。 //exit(0)。 }}int Entry(char ch){ for(int i=1。iSign[0]。i++) if(Sign[i]==ch) return i+100。 Sign[++Sp]=ch。 return Sp+100。}int CharToDigital(char ch){ int j。 for(j=0。j8。j++) if(ch==cost[0][j]) return j。 if(IsChar(ch)) { return Entry(ch)。 } else return 0。}void ToDigital(int digital[],char str[],int amp。d_len,int len){ for(int i=0。ilen。i++) { digital[d_len]=CharToDigital(str[i])。 if(digital[d_len]==0) { cout輸入錯(cuò)誤!位置:i+1endl。 coutstr[i]不能被識(shí)別endl。 system(pause)。 exit(0)。 } if(digital[d_len]==2amp。amp。digital[d_len1]==2) digital[d_len1]=3。 else d_len++。 }}void main(){ char string[MAX]。 int *ch=new int [MAX]。 int a。 int strp。 int statop。 int statopvt。 int fp=0。 cout*****************算符優(yōu)先關(guān)系表:*************************endl。 DispCost()。 cout*********************************************************endl。 cout請(qǐng)輸入一段程序(以 結(jié)束!):endl。 (string,MAX)。 int len=strlen(string)。 ToDigital(Digital,string,Dp,len)。 cout*******************************************************endl。 cout符號(hào)棧:39。\t39。39。\t39。動(dòng)作:39。\t39。39。\t39。39。\t39。產(chǎn)生:endl。 (7)。 strp=0。 statop=()1。 statopvt=statop。 a=Digital[0]。 while(a!=7) { a=Digital[strp]。 if((statop)200) statopvt=statop。 else statopvt=statop1。 while(a200amp。amp。(SearchCost((statopvt),a)==1)) { ()。 int highpos=statopvt,lowpos=highpos1。 if((lowpos)200) lowpos。 while(SearchCost((lowpos),(highpos))!=1) { highpos=lowpos。 lowpos。 if((lowpos)200) lowpos。 } int start=()。 lowpos++。 int length=startlowpos。 (Merge(ch,length))。 statopvt=()1。 if((statopvt)200) statopvt。 } if ((a200)amp。amp。(SearchCost((statopvt),a)==2)) { cout錯(cuò)誤!endl。 cout第strp+1 字母錯(cuò)誤!endl。 DispItem(a)。 exit(0)。 } else { ()。 cout移進(jìn):。 DispItem(a)。 coutendl。 (a)。 strp++。 statop=()1。 } } ()。 int t[MAX]。 (t,3)。 if(()==0) coutYes!endl。 else coutNo!endl。 cout~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~endl。 cout最后四元式如下:endl。 for(int l=1。l=Fp。l++) { coutl:。 four[l]DispSample()。 } system(pause)。}3. 實(shí)驗(yàn)結(jié)果如下:課程設(shè)計(jì)(綜合實(shí)驗(yàn))總結(jié)或結(jié)論 通過(guò)一周的艱苦實(shí)驗(yàn),基本達(dá)到了實(shí)驗(yàn)的目的。通過(guò)這次試驗(yàn),我加深對(duì)課堂教學(xué)內(nèi)容的理解,培養(yǎng)解決實(shí)際問(wèn)題能力。同時(shí)學(xué)會(huì)了應(yīng)用編譯程序設(shè)計(jì)的原理和技術(shù)設(shè)計(jì)出詞法分析器,了解了掃描器的組成結(jié)構(gòu),不同種類單詞的識(shí)別方法。以及了解了算符優(yōu)先分析程序的組成結(jié)構(gòu),掌握實(shí)現(xiàn)通用算符優(yōu)先分析算法的方法。在實(shí)驗(yàn)過(guò)程中遇到的諸多疑問(wèn),也通過(guò)努力一一得到了解答。同時(shí)感謝老師的耐心指導(dǎo)與講解!1.詞法分析器設(shè)計(jì)通過(guò)詞法分析器的設(shè)計(jì)更加深刻的理解詞法的概念,也明確了運(yùn)算符、界符、標(biāo)識(shí)符、常數(shù)的定義,實(shí)驗(yàn)需要注意的問(wèn)題是對(duì)空格的過(guò)濾,這個(gè)是尤其重要的,此外對(duì)“**”的判斷也應(yīng)該單獨(dú)處理,總體來(lái)講實(shí)驗(yàn)比較成功。2.算符優(yōu)先分析程序設(shè)計(jì)算符優(yōu)先分析的設(shè)計(jì),主要是把查表和分析棧結(jié)合起來(lái),通過(guò)優(yōu)先級(jí)的判斷來(lái)決定究竟是進(jìn)行規(guī)約還是入棧。實(shí)驗(yàn)需要注意的細(xì)節(jié)是對(duì)處理的字符時(shí)終結(jié)符還是非終結(jié)符的判斷。通過(guò)本次實(shí)驗(yàn)更加深刻的理解了優(yōu)先關(guān)系表的相關(guān)概念,深刻的體會(huì)到了ab并不等價(jià)于ba的含義,也體會(huì)到了優(yōu)先表對(duì)于編譯過(guò)程的意義。3基于算符優(yōu)先分析方法的語(yǔ)法制導(dǎo)翻譯程序的設(shè)計(jì)在算符優(yōu)先分析的基礎(chǔ)上進(jìn)行本次實(shí)驗(yàn),思路還是比較清晰的,處理的難點(diǎn)就是將規(guī)約與上面的實(shí)驗(yàn)區(qū)別開來(lái),采用轉(zhuǎn)化為數(shù)字的方式,比較容易的將這一問(wèn)題合理的解決,在生成產(chǎn)生式時(shí)對(duì)使用哪一個(gè)產(chǎn)生式的判斷是必不可少的。實(shí)驗(yàn)的步驟比較嚴(yán)謹(jǐn),通過(guò)本次實(shí)驗(yàn)也提高了對(duì)編譯的變成能力和程序調(diào)試能力,并對(duì)編譯原理這門課產(chǎn)生了更濃郁的興趣。參考文獻(xiàn)[1] 陳火旺,劉春林. 程序設(shè)計(jì)語(yǔ)言編譯原理. 國(guó)防工業(yè)出版社,第三版. [2] 宋雨,程曉榮,黃志強(qiáng). ,第一版. 2004,231
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1