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

正文內(nèi)容

編譯原理課程設(shè)計(jì)c語(yǔ)言編譯器的實(shí)現(xiàn)畢業(yè)論文-文庫(kù)吧

2025-06-13 11:12 本頁(yè)面


【正文】 15s36s4116383716r13s43r1317s19s1818r1919s14s23s272220G[P]:SLR(1)分析表Actiongotoid()。:*+={}intandifthenwhiledo$PDRETFBMSLN0123456789101112131415161701234567891020r17r1721r18r1822r16r1623s312424s34s2525s142626r14r1427s312828s3429s14s293030r15r1531s3232s3333r12r12r1234s313535r11r11r1136r10r10r10r10r1037r8r8r8r8r838r6r6s39r6r639s36s4140G[P]:SLR(1)分析表actiongotoid()。:*+={}intandifthenwhiledo$PDRETFBMSLN0123456789101112131415161701234567891040r7r7r7r7r741s36s4142383742s45s4343s36s41443744r5r5s39r5r545r9r9r9r9r9五. 語(yǔ)義分析和中間代碼生成 載語(yǔ)法分析過(guò)程中,隨著分析的步步進(jìn)展,根據(jù)每個(gè)產(chǎn)生式所對(duì)應(yīng)的語(yǔ)義子程序(或語(yǔ)義規(guī)則描述的語(yǔ)義動(dòng)作)進(jìn)行翻譯的辦法稱作語(yǔ)法制導(dǎo)翻譯。語(yǔ)法制導(dǎo)翻譯歸約動(dòng)作翻譯方案E→E+TE→E1+T{=newtemp。Emit(’:=’’+’)。}E→TE→T{ :=。}T→T*FT→T1*F{=newtemp。 Emit(’:=’ ’+’)。}T→FT→F {:=。}F→(E)F→(E){:=。}F→idF→id {p:=lookup()。 if pnil then :=p else error。}B→B and BB→B1 and A B2{backpatch(,)。:=。:=merge(,)。}A→∈{:=nextquad}B→ididB→id1id2{:=makelist(nextquad)。 :=makelist(nextquad+1)。 emit(if ’’’goto_ _’)。 emit(’goto_ _’)。}M→id=EM→id=E{ p:=lookup()。 if pnil then emit(p’:=’) else error。}S→if B then MS→if B then A M{backpatch(,) backpatch(,nextquad)}A→∈{:=nextquad}S→while B do MS→while A1 B do A2 M{ backpatch(,) backpatch(,nextquad+1) emit(’goto’)}A1→∈{:=nextquad}A2→∈{:=nextquad}語(yǔ)法翻譯生成的四元式如下:六. 代碼生成目標(biāo)代碼生成階段的任務(wù)是把中間代碼變換成特定機(jī)器上的絕對(duì)指令代碼或可重定位的指令代碼或匯編指令代碼。這是編譯的最后階段,它的工作與硬件系統(tǒng)結(jié)構(gòu)和指令含義有關(guān),這個(gè)階段的工作很復(fù)雜,涉及到硬件系統(tǒng)功能部件的運(yùn)用、機(jī)器指令的選擇、各種數(shù)據(jù)類型變量的存儲(chǔ)空間分配以及寄存器和后緩寄存器的調(diào)度等。本程序生成的目標(biāo)代碼與0x8086微處理器兼容。下面列舉幾個(gè)簡(jiǎn)單的四元式與匯編代碼的轉(zhuǎn)化列子:.(+,A,B,T)→MOV R ,A ;ADD R ,B 。ST R , T. ( *, A , B , T ) →MOV R ,A ;MUL R ,B 。ST R , T. ( J, _ , _ , L) → JMP L. ( J , A , B , L ) → MOV R , A CMP R , B JB L. ( =,A , _ ,T ) → LD R , A ST R , T 本程序生成的目標(biāo)代碼如下: 七. 程序流程圖 編譯程序流程圖 八. 實(shí)現(xiàn) ,內(nèi)存為768M .軟件環(huán)境為windows xp系統(tǒng),Visual C++環(huán)境。九. 程序運(yùn)行結(jié)果1. 輸入源文件路徑:2. 輸出保留字 3.輸出符號(hào)表的內(nèi)容5.輸出語(yǔ)法分析的結(jié)果(本程序采用自下而上的LR語(yǔ)法分析)6.輸出中間代碼7.輸出目標(biāo)代碼十. 總結(jié)通過(guò)本次實(shí)驗(yàn),我對(duì)編譯程序各階段有了更深刻更深入的了解,也糾正了自己在某些方面的的錯(cuò)誤,豐富了自己關(guān)于編譯原理方面的知識(shí)。同時(shí)也培養(yǎng)了自己熱愛思考,勤查資料的習(xí)慣。由于水平本次實(shí)驗(yàn)涉及面并不是很全面,我只考慮了c語(yǔ)言的一個(gè)子集。當(dāng)然本程序的算法在某些地方也還存在一些缺陷。十一. 附錄(源程序)本程序輸入的c源代碼如下:libo()a:int。b:int。ccc:int。d:int。{if cccb and ccca then a=b+a。while cccd do a=d。a=(b+ccc)*a+d}本程序的完整源代碼如下:includecstdioincludeiostreamincludecstdlibincludefstreamincludestringincludecmathusing namespace std。struct token//詞法 token結(jié)構(gòu)體{ int code。//編碼 int num。//遞增編號(hào) token *next。}。token *token_head,*token_tail。//token隊(duì)列struct str//詞法 string結(jié)構(gòu)體{ int num。//編號(hào) string word。//字符串內(nèi)容 str *next。}。str *string_head,*string_tail。//string隊(duì)列struct ivan//語(yǔ)法 產(chǎn)生式結(jié)構(gòu)體{ char left。//產(chǎn)生式的左部 string right。//產(chǎn)生式的右部 int len。//產(chǎn)生式右部的長(zhǎng)度}。ivan css[20]。//語(yǔ)法 20個(gè)產(chǎn)生式struct pank//語(yǔ)法 action表結(jié)構(gòu)體{ char sr。//移進(jìn)或歸約 int state。//轉(zhuǎn)到的狀態(tài)編號(hào)}。pank action[46][18]。//action表int go_to[46][11]。//語(yǔ)法 go_to表struct ike//語(yǔ)法 分析棧結(jié)構(gòu)體,雙鏈{ ike *pre。 int num。//狀態(tài) int word。//符號(hào)編碼 ike *next。}。ike *stack_head,*stack_tail。//分析棧首尾指針struct L//語(yǔ)義四元式的數(shù)據(jù)結(jié)構(gòu){ int k。 string op。//操作符 string op1。//操作數(shù) string op2。//操作數(shù) string result。//結(jié)果 L *next。//語(yǔ)義四元式向后指針 L *Ltrue。//回填true鏈向前指針 L *Lfalse。//回填false鏈向前指針}。L *L_four_head,*L_four_tail,*L_true_head,*L_false_head。/*四元式鏈,true鏈,false鏈*/struct symb//語(yǔ)義輸入時(shí)符號(hào)表{ string word。//變量名稱 int addr。//變量地址 symb *next。}。symb *symb_head,*symb_tail。//語(yǔ)義符號(hào)鏈表////////////////////////////////詞法分析有關(guān)函數(shù)聲明void outdaima() 。void scan()。//按字符讀取源文件void cifa_main()。//詞法分析主程序int judge(char ch)。//判斷輸入字符的類型void out1(char ch)。//void out3(char ch,string word)。//void input1(token *temp)。//插入結(jié)點(diǎn)到隊(duì)列tokenvoid input3
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1