天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當(dāng)前位置:主頁 > 科技論文 > 計(jì)算機(jī)論文 >

構(gòu)造一個(gè)dfa_編譯程序?qū)儆谑裁窜浖㥮編譯程序構(gòu)造

發(fā)布時(shí)間:2016-06-03 15:01

  本文關(guān)鍵詞:編譯程序構(gòu)造,由筆耕文化傳播整理發(fā)布。


1.題目:編譯程序構(gòu)造 2.內(nèi)容:涉及詞法分析、自下而上語法分析程序的實(shí)現(xiàn):SLR(1)分析器的實(shí)現(xiàn)以及生成中間代碼。 3.具體要求 根據(jù)LR分析算法構(gòu)造SLR(1)分析程序,并完成語法分析動(dòng)作(當(dāng)需要一個(gè)單詞時(shí),調(diào)用詞法分析程序獲。瑫r(shí)完成語義分析生成四元式輸出。要求程序具有通用性,改變文法時(shí)只需改變程序的數(shù)據(jù)初值,無需改變程序主體; (1)基本要求:完成1條說明語句、2條算數(shù)表達(dá)式和賦值語句的翻譯,生成中間代碼。 (2)高級(jí)要求:在完成基本要求的基礎(chǔ)上,實(shí)現(xiàn)if語句和布爾表達(dá)式的翻譯。if語句的文法和翻譯方案參見課本。 變量說明語句的文法及相應(yīng)的語義子程序:.att表示數(shù)據(jù)類型屬性,fill函數(shù)表示將單詞id及其類別屬性填寫符號(hào)表。 (0)S→D; {acc} (1)D→int id { fill(id,int);D.att=int; } (2)D→float id {fill(id,float); D.att=float; } (3)D→D(1),id { fill(id,D(1).att);D.att=D(1).att; } 算數(shù)表達(dá)式和賦值語句的文法及相應(yīng)的語義子程序。 (1)A→id=E; {p=lookup(id.name); emit(E.PALCE, , p);} (2)E→E(1)+T {E.PALCE=newtemp(); emit(+,E(1).PALCE,T.PALCE,E.PALCE)} (3)E→T {E.PALCE=T.PALCE;} (4)T→T(1)*F {T.PALCE=newtemp(); emit(+,T(1).PALCE,F(xiàn).PALCE,T.PALCE)} (5)T→F {T.PALCE=F.PALCE;} (6)F→(E) { F.PALCE=E.PALCE;} (7)F→id {P=LOOKUP(id.name) F.PALCE=P;} (8)F→num { P=LOOKUP(num.value) F.PALCE=P;} 構(gòu)造其用于SLR(1)分析的識(shí)別活前綴的DFA以及action表和goto表。然后編程實(shí)現(xiàn)。(關(guān)于詞法分析部分只需識(shí)別出與此文法相關(guān)的單詞即可(+,*,(,),id,=))。 4.程序設(shè)計(jì)提示: (1)分析棧設(shè)計(jì)時(shí)可以用一個(gè)棧完成,也可以設(shè)計(jì)三個(gè)棧:一個(gè)符號(hào)棧,一個(gè)狀態(tài)棧,一個(gè)語義棧,則歸約時(shí),則需要在符號(hào)棧中退掉n個(gè)符號(hào),在狀態(tài)棧中退掉n個(gè)符號(hào)(n為產(chǎn)生式符號(hào)個(gè)數(shù)),,語義棧中退掉n個(gè)符號(hào)對(duì)應(yīng)的語義; (2)終結(jié)符表和非終結(jié)符表的組織和預(yù)測(cè)分析程序中相同(將符號(hào)對(duì)應(yīng)到一個(gè)數(shù)字,表示在分析表中對(duì)應(yīng)的下標(biāo))。 (3)action表中的錯(cuò)誤處理:簡(jiǎn)化的錯(cuò)誤處理:當(dāng)查找action表出現(xiàn)空白時(shí),則當(dāng)前單詞無法移進(jìn)和規(guī)約,可簡(jiǎn)單的認(rèn)為當(dāng)前單詞為多余的單詞,則拋棄當(dāng)前單詞,讀下一單詞繼續(xù)分析。 5.測(cè)試數(shù)據(jù): 作為程序測(cè)試數(shù)據(jù),以賦值語句area=r*r+r$作為測(cè)試輸入(源程序)。程序要求輸出二元式序列、符號(hào)表、語法分析過程、四元式序列。 假設(shè)AA.TXT的文件內(nèi)容如下: int area,r; r=1; area=r*r+r; 程序運(yùn)行情況如下: 請(qǐng)輸入源文件名稱:E:\AA.TXT<回車> 語法分析過程如下: 狀態(tài)棧 符號(hào)棧 語義棧 動(dòng)作說明 源程序?qū)?yīng)的二元式如下: (int,-) (id,0) (,,-) (id,1) (;,-) (id,1) (=,) (num,0) (id,0) (=,) (id,1) (*,) (id,1) (+,) (id,1) (;,-) 符號(hào)表如下: Name type value addr 0 area int 1 r int 數(shù)字表如下 源程序?qū)?yīng)的四元式序列如下: (=,1, , r) (*,r,r,T1) (+,T1,r,T2) (=,T2,,area) 分析過程完成。 6.程序擴(kuò)展要求 有能力的同學(xué)可將編譯程序擴(kuò)展布爾表達(dá)式、if語句的分析和四元式生成,布爾表達(dá)式和if語句的翻譯參見教材。


  本文關(guān)鍵詞:編譯程序構(gòu)造,由筆耕文化傳播整理發(fā)布。



本文編號(hào):53302

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/53302.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶d6fe7***提供,本站僅收錄摘要或目錄,作者需要?jiǎng)h除請(qǐng)E-mail郵箱bigeng88@qq.com
亚洲精品美女三级完整版视频| 亚洲午夜精品视频在线| 亚洲第一香蕉视频在线| 欧美二区视频在线观看| 欧美日韩一区二区三区色拉拉| 五月天综合网五月天综合网| 欧美日韩国产的另类视频| 字幕日本欧美一区二区| 日本av在线不卡一区| 人妻少妇av中文字幕乱码高清| 国产精品欧美一区二区三区不卡| 日韩欧美中文字幕av| 欧美韩日在线观看一区| 国产大屁股喷水在线观看视频 | 在线观看免费视频你懂的| 日韩精品中文字幕在线视频| 东京热男人的天堂一二三区| 超碰在线播放国产精品| 福利专区 久久精品午夜| av中文字幕一区二区三区在线| 午夜精品成年人免费视频| 亚洲欧美日韩中文字幕二欧美 | 国产情侣激情在线对白| 加勒比系列一区二区在线观看| 日韩人妻有码一区二区| 亚洲第一区欧美日韩在线| 日韩精品视频免费观看| 韩日黄片在线免费观看| 视频一区二区 国产精品| 亚洲欧美日韩精品永久| 国产精品一区二区丝袜| 日本高清不卡一二三区| 欧洲日韩精品一区二区三区| 在线观看视频国产你懂的| 国产欧美日韩在线精品一二区| 亚洲午夜福利视频在线| 亚洲精品中文字幕欧美| 日韩精品综合免费视频| 在线免费国产一区二区| 欧美一二三区高清不卡| 日韩和欧美的一区二区三区|