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

正文內(nèi)容

[電腦基礎(chǔ)知識(shí)]編譯原理課程設(shè)計(jì)報(bào)告-資料下載頁

2025-03-23 02:06本頁面
  

【正文】 查變量表模塊在遞歸下降分析后,程序中的變量經(jīng)分析后將存入變量表中,變量表記錄了變量的變量名,變量所在的過程的層次,變量在其過程的相對(duì)數(shù)。這些屬性在填寫四元式表和四元式文件時(shí)都是必須的屬性。u檢查過程調(diào)用合理性模塊對(duì)于call語句是否合法應(yīng)做下面的工作1)此過程是否已定義,參數(shù)個(gè)數(shù)是否相等。2)過程調(diào)用關(guān)系是否正確,過程調(diào)用只允許:外過程調(diào)用內(nèi)一層。同層調(diào)用,但被調(diào)用段應(yīng)在調(diào)用段之前定義。內(nèi)過程調(diào)用外過程要檢查外過程是否為內(nèi)過程的外過程。這3種情況對(duì)于參數(shù)個(gè)數(shù)是否相等,因?yàn)閷?shí)參是依次排列的,在翻譯其參數(shù)時(shí)應(yīng)當(dāng)先將參數(shù)地址存入一個(gè)隊(duì)列中,設(shè)置一計(jì)數(shù)器parnumber計(jì)算參數(shù)個(gè)數(shù)u填四元式模塊填寫四元式表可以用一個(gè)過程GEN來處理,GEN過程參數(shù)為操作碼,三個(gè)操作數(shù)的類型和地址共七個(gè)。每個(gè)操作數(shù)的四個(gè)域可以有其類型和地址查到。如果某一個(gè)操作數(shù)無用,那么它的相對(duì)數(shù),類型,相對(duì)層差都置為1,名字置為空串,其GEN過程對(duì)應(yīng)得的參數(shù)也置為1。由于對(duì)三個(gè)操作數(shù)個(gè)域的填寫工作是一樣的,為此在GEN過程中可嵌套一個(gè)字過程proceopr用于處理操作數(shù)的填寫工作。? GEN過程:gen(op, opr1adr, opr2adr, opr3adr ,opr1type, opr2type, opr3type)在語義子程序中為emit( ) ,emit“()”中只是表示應(yīng)生成的四元式。程序?qū)崿F(xiàn)用GEN過程,應(yīng)根據(jù)應(yīng)生成的四元式指定相應(yīng)的7個(gè)參數(shù)。 四元式表的指針PC開始是賦初值為1,每調(diào)用一次GEN過程將一條四元式存入PC所指的記錄中,填完后將PC增值1,這樣PC得值總是指向下一條是在四元式表的地址。注意:對(duì)整數(shù)進(jìn)行填寫時(shí),name應(yīng)轉(zhuǎn)為字符串型注意:對(duì)于newtemp申請(qǐng)的臨時(shí)變量名作為四元式中的一個(gè)操作數(shù),在屏幕顯示時(shí),對(duì)于type等于2的,k轉(zhuǎn)換為字符型,與t合并為tk輸出。模塊參數(shù)形式舉例:gen(op,opr1type,opr1offect,opr2type,opr2offect,opr3type,opr3offect)停機(jī)指令:gen(9,1,1,1,1,1,1)注: gen獲取操作數(shù)的屬性由查變量表模塊進(jìn)行u輸出四元式模塊:由于語法規(guī)定只有無格式輸入輸出,為次,只要按所列的變量順序產(chǎn)生相應(yīng)得四元式即可。輸出輸出語句的變量如同call語句中的參數(shù)一樣,因此也可以用隊(duì)列形式來處理。當(dāng)輸入輸出語句分析完再按隊(duì)列的順序生成上述的四元式規(guī)約式語義動(dòng)作。四、運(yùn)行結(jié)果五、主要功能的實(shí)現(xiàn)代碼u語義處理的主模塊用的是SWITCH語句產(chǎn)生各個(gè)語句動(dòng)作switch(act){case 0://printf(\nPLL)。actlength=searchPL(act,amp。actCode)。for(i=0。iactlength。i++){pop(stateStack)。pop(codeStack)。}currentState=getTop(stateStack)。currentState=searchGoToTable(currentState,actCode)。push(stateStack,currentState)。push(codeStack,actCode)。break。case 1://printf(\nLLS S)。actlength=searchPL(act,amp。actCode)。for(i=0。iactlength。i++){pop(stateStack)。pop(codeStack)。}currentState=getTop(stateStack)。currentState=searchGoToTable(currentState,actCode)。push(stateStack,currentState)。push(codeStack,actCode)。break。case 2://printf(\nLS)。actlength=searchPL(act,amp。actCode)。for(i=0。iactlength。i++){pop(stateStack)。pop(codeStack)。}currentState=getTop(stateStack)。currentState=searchGoToTable(currentState,actCode)。push(stateStack,currentState)。push(codeStack,actCode)。break。case 3://printf(\nLSL。)。actlength=searchPL(act,amp。actCode)。for(i=0。iactlength。i++){pop(stateStack)。pop(codeStack)。}currentState=getTop(stateStack)。currentState=searchGoToTable(currentState,actCode)。push(stateStack,currentState)。push(codeStack,actCode)。break。case 4://printf(\nSbegin L end)。actlength=searchPL(act,amp。actCode)。for(i=0。iactlength。i++){pop(stateStack)。pop(codeStack)。}currentState=getTop(stateStack)。currentState=searchGoToTable(currentState,actCode)。push(stateStack,currentState)。push(codeStack,actCode)。break。u合鏈回填模塊void backPatchChain()u查變量表模塊u檢查過程調(diào)用合理性模塊u填四元式模塊void gen(int op,int oprtype1,int oproffset1,int oprtype2,int oproffset2,int oprtype3,int oproffset3){express[expPointer].oprater=op。if(oprtype1==0){strcpy(express[expPointer].,parTable[E1].parName)。express[expPointer].=oprtype1。express[expPointer].=oproffset1。express[expPointer].=parTable[E1].relevel。}else{express[expPointer].=oprtype1。express[expPointer].=oproffset1。express[expPointer].=0。}if(oprtype2==0){strcpy(express[expPointer].,parTable[E2].parName)。express[expPointer].=oprtype2。express[expPointer].=oproffset2。express[expPointer].=parTable[E2].relevel。}else{express[expPointer].=oprtype2。express[expPointer].=oproffset2。express[expPointer].=0。}。u輸出四元式模塊:
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1