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

正文內(nèi)容

第六章中間代碼生成(文件)

2025-08-19 13:20 上一頁面

下一頁面
 

【正文】 件表達式,分別指向循環(huán)體的開頭和循環(huán)出口處; 布爾表達式的代碼的 SDD( 1) 布爾表達式的代碼的 SDD( 2) 布爾表達式代碼的例子 ? if (x100 || x 200 amp。比如 x=ab; ? 處理方法: – 首先建立表達式的語法樹,然后根據(jù)表達式的不同角色來處理。 E | E rel E | … ? 根據(jù) E的語法樹結(jié)點所在的位置: – S?while ( E ) S1中的 E,生成跳轉(zhuǎn)代碼 – 對于 S?id = E,生成計算右值的代碼 回填( 1) ? 為布爾表達式和控制流語句生成目標代碼的關(guān)鍵問題:某些跳轉(zhuǎn)指令應(yīng)該跳轉(zhuǎn)到哪里 ? 例如: if (B) S – 按照短路代碼的翻譯方法, B的代碼中有一些跳轉(zhuǎn)指令在 B為假時執(zhí)行, – 這些跳轉(zhuǎn)指令的目標應(yīng)該跳過 S對應(yīng)的代碼。 – 這些位置被記錄到 B的綜合屬性 ; – 當 (即 S的代碼生成完畢時),把。 =。amp。 ? 跟蹤的方法 – 在符號表中設(shè)置 break條目,令其指向外圍語句 – 在符號表中設(shè)置指向 S的 nextlist的指針,然后把這個指令坯的位置直接加入到 nextlist中。 – 考慮 S是 while語句、 if語句的子語句時,分別應(yīng)該跳轉(zhuǎn)到哪里? 控制轉(zhuǎn)移語句的回填( 2) ? M的作用就是用 – 規(guī)則 1中記錄了 then分支的代碼起始位置; – 規(guī)則 2中,分別記錄了 then分支和 else分支的起始位置; ? N的作用是生成 goto指令坯, 令的位置 控制轉(zhuǎn)移語句的回填 (3) Break、 Continue的處理 ? 雖然 break、 continue在語法上是一個獨立的句子,但是它的代碼和外圍語句相關(guān)。 label的標號; ? 原方案生成的指令 goto ,現(xiàn)在生成了 goto 回填和非回填方法的比較( 2) ? 回填時生成指令坯,然后加入相應(yīng)的 list ? 原來跳轉(zhuǎn)到 ,現(xiàn)在被加入到。} B1 || {label()。需要第二趟處理。 | if (E) S | while (E) S | S S – E? E‖E | E amp。 x!= y ) x = 0。}S1{gen(‘goto’ begin)。 = newlabel。B2中 B1為假時,不計算 B2,整個表達式為假 ? 短路代碼 – 通過跳轉(zhuǎn)指令實現(xiàn)控制流的處理 – 邏輯運算符本身不在代碼中出現(xiàn); 短路代碼的例子 ? 語句: – if (x100 || x200 amp。 B | !B | (B) | E rel E | true | false ? 語義 – B1‖B2中 B1為真時,不計算 B2,整個表達式為真。} } – 這個規(guī)則沒有考慮生成類型轉(zhuǎn)換代碼 類型的 widening和 narrowing ? Java的類型轉(zhuǎn)換規(guī)則 ? 編譯器自動完成的轉(zhuǎn)換為隱式轉(zhuǎn)換,程序員用代碼指定的轉(zhuǎn)換為顯式轉(zhuǎn)換。 ? 元素從 0到 n1編號,第 i個元素的地址為 base+i*w ? K維數(shù)組的尋址:假設(shè)數(shù)組按行存放,即首先存放A[0][i2]…[ ik],然后存放 A[1][i2]…[ ik], … ? A[i1][i2]…[ ik]的地址 base+i1*w1+i2*w2+…+ ik*wk ? 或者 base+((…((i 1*n2+i2)*n3+i3)…)* nk+ik)*w ? 其中: base、 w、 i、 n的值可以從符號表中找到。 { = + 。 也可以把 t和 w替換為 SDT運行的例子
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1