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

正文內(nèi)容

編譯原理課程設(shè)計(jì)---pl0編輯器擴(kuò)充-預(yù)覽頁(yè)

 

【正文】 管理程序建立變量,常量和過(guò)程標(biāo)識(shí)符的說(shuō)明與引用之間的信息聯(lián)系。 /*類(lèi)型: const, var, array or procedure*/ int val。 /*需要分配的數(shù)據(jù)區(qū)空間,僅 procedure 使用 */ }。靜態(tài)鏈記錄了定義該過(guò)程的直接外過(guò)程(或主程序)運(yùn)行時(shí)最新數(shù)據(jù)段的基地址。靜態(tài)鏈的功能是在一個(gè)子過(guò)程要引用它的直接或間接父過(guò)程(這里的父過(guò)程是按定義過(guò)程時(shí)的嵌套情況來(lái)定的,而不是按執(zhí)行時(shí)的調(diào)用順序定的)的變量時(shí),可以通過(guò)靜態(tài)鏈,跳過(guò)個(gè)數(shù)為層差的數(shù)據(jù)段,找到包含要引用的變量所在的數(shù)據(jù) 段基址,然后通過(guò)偏移地址訪問(wèn)它。 解釋程序過(guò)程中的 base函數(shù)的功能,就是用于沿著靜態(tài)鏈,向前查找相差指定層數(shù)的局部數(shù)據(jù)段基址。 7. 擴(kuò)充賦值運(yùn)算: += 和 = 設(shè)計(jì): 對(duì)于 +=、 =、 *=和 /=賦值運(yùn)算符,在程序中出現(xiàn)的情況只有如下一種,文法的 EBNF 表示為: 賦值語(yǔ)句 ::= 標(biāo)識(shí)符 [ += | = ] 表達(dá)式 ( 1) 擴(kuò)充的語(yǔ)法描述見(jiàn)結(jié)構(gòu)設(shè)計(jì)中的 PL/0 分程序和主要語(yǔ)句的語(yǔ)法描述中的描述圖; ( 2)分析區(qū)別賦值運(yùn)算符采用:讀標(biāo)識(shí)符后再讀一個(gè)字符,后根據(jù)讀到的字符轉(zhuǎn)去 不同的賦值語(yǔ)句執(zhí)行。 /*找到變量地址并將其值入棧 */ getsymdo。 gendo(opr,0,2)。 保存賦值后的結(jié)果 gendo(sto,levtable[i].level,table[i].adr)。 /*找到變量地址并將其值入棧 */ getsymdo。 gendo(opr,0,3)。 AGAIN : i:= i+2 OVER : if iE2 then Begin S1。 if(sym==ident) { i=position(id,*ptx)。 } else { getsymdo。 nxtlev[tosym]=true。 //保存初值 switch(sym) { case tosym: //步長(zhǎng)為的向上增加 getsymdo。 //處理表達(dá)式 E2 nxtlev[dosym]=true。 //保存循環(huán)結(jié)束點(diǎn) //生成條件跳轉(zhuǎn)指令,跳出循環(huán),跳出的地址未知 gendo(jpc,0,0)。 gendo(lit,0,1)。 //無(wú)條件跳轉(zhuǎn)到循環(huán)開(kāi)始點(diǎn) code[cx2].a=cx。 cx1=cx。 //后跟符 do expressiondo(nxtlev,ptx,lev)。 if(sym==dosym) //處理循環(huán)體 S { getsymdo。 //將步長(zhǎng)取到棧頂 gendo(opr,0,3)。 } else { error(29)。語(yǔ)句 ++a 和 a 作為因子,比如: b:= a+2*++a。 //執(zhí)行加操作, if(i!=0) { gendo(sto,levtable[i].level,table[i].adr)。 gendo(opr,0,3)。 /***增加符號(hào) ++開(kāi)始因子 plusplus***/ facbegsys[minusminus]=true。 } else { if(table[i].kind!=variable) //++后沒(méi)跟變量,出錯(cuò) { error(12)。 //將值為入棧 gendo(opr,0,2)。 if(sym==ident) //后面跟的是變量 { i=position(id,*ptx)。 } else //后跟變量,處理生成中間代碼 { if(table[i].kind==variable) //后跟變量 { gendo(lod,levtable[i].level,table[i].adr)。//出棧取值到內(nèi)存 getsymdo。 //出棧取值到內(nèi)存 gendo(lod,levtable[i].level,table[i].adr)。 } else if(sym==minusminus) { gendo(lit,levtable[i].level,1)。 gendo(lit,0,1)。 if(sym==ident) { getsymdo。//先取值到棧頂 gendo(lit,0,1)。 //取值到棧頂 } } } } else if(sym==minusminus) { getsymdo。 } else { if(table[i].kind==variable) //變量 { //先減后再用 a gendo(lod,levtable[i].level,table[i].adr)。//出棧取值到內(nèi)存 gendo(lod,levtable[i].level,table[i].adr)。 通過(guò)課程設(shè)計(jì),我對(duì)編譯器的 工作原理和實(shí)現(xiàn)機(jī)制 有了實(shí)際的了解和認(rèn)識(shí),進(jìn)一步培養(yǎng)的編譯技術(shù)的設(shè)計(jì)思想,仔細(xì)閱讀 PL/0 的編譯程序 C 語(yǔ)言版本代碼 ,對(duì)詞法分析 ,句法分析在編程技巧和實(shí)際意義 有了深刻的理解 ,從枯燥的 理論學(xué)習(xí)到現(xiàn)在 實(shí)際 應(yīng)用過(guò)程 對(duì)于我自身知識(shí)面的提升是
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1