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

正文內(nèi)容

編譯第七章語法制導(dǎo)翻譯(編輯修改稿)

2024-11-13 02:28 本頁面
 

【文章內(nèi)容簡介】 (4)E E(1) {E● TC=E(1)● FC。 E● FC=E(1)● FC} ? (5)EA E(1)∧ ? {BACKPATCH(E● TC,NXQ)。 ? EA● FC=E(1)● FC。} ? (6)E EAE(2) ? {E● TC=E(1)● TC。 ? E● FC=MERG(EA● FC,E(2)● FC} 第三節(jié) 布爾表達(dá)式的翻譯 ? 五、控制語句中布爾式的翻譯 ? 例如:將布爾式 A∧B∨ C 在語法制導(dǎo)下翻譯成四元式。 INPUT SYM TC FC 四元式 A∧B∨ C ∧B∨ C i ∧B∨ C E 1 2 1.(jnz,a,_,(3)) B∨ C E∧ 1 2 2.(j,_,_.(5)) B∨ C EA 2 ∨ C EAi 2 INPUT SYM TC FC 四元式 ∨ C EAE 3 24 3.(jnz,B,_,0) ∨ C E 3 4 4.(j,_,_,(5)) C E∨ 3 4 C E0 3 C E0 3 E0 i 3 E0 E 35 6 5.(jnz,C,_,0) E0E 36 5 5.(j,_,_,(3)) E 6 5 成功 第四節(jié) 控制語句的翻譯 ? 一、 控制語句的種類: ? 無條件轉(zhuǎn)換語句 ? 條件語句 ? 迭代語句 ? 循環(huán)語句 ? 分支語句 第四節(jié) 控制語句的翻譯 ? 二、標(biāo)號和轉(zhuǎn)移語句 (GOTO) ? 標(biāo)號和轉(zhuǎn)移語句 (GOTO) ? (1)標(biāo)號語句 ? GOTO語句實現(xiàn)無條件轉(zhuǎn)移,要確定轉(zhuǎn)移的目的語句,需要給語句加標(biāo)號。 ? 帶標(biāo)號的語句形式: L:S ? L是標(biāo)號 ? (2)標(biāo)號的定義和使用: ? 先定義后使用 L:S …… ..GOTO L ? 先使用后定義 GOTO L…… L:S 第四節(jié) 控制語句的翻譯 ? 先定義后使用 ? (1)形式: L:S ? …… . ? GOTO L ? …… . ? (2)定義和使用表號的文法 ? S goto L ? Label i: ? (3)翻譯過程: ? 當(dāng)遇到定義性的標(biāo)號語句時,將 L歸約為 Label,再將 L填入符號表,如下: NAME INFORMATION CAT …… .. 定義否 地址 …… …… .. L 標(biāo)號 已 …… .. :即 S對應(yīng)的入口四元式序號。 當(dāng)后面遇到 GOTO L語句時,便產(chǎn)生四元式: (j,_,_,P), 其中 P= ? 先使用后定義 ? (1)形式: GOTO L’ ? …… ? GOTO L’ ? …… . ? GOTO L’ ? …… . ? L’:S ? (2)翻譯過程: ? 由于這里是先使用,所以當(dāng)遇到標(biāo)號 L’時,它還未定義,故而填入符號表時情況與上不同,表如下: NAME INFORMATION CAT …… .. 定義否 地址 …… …… .. L‘ 標(biāo)號 未 P …… .. (2)翻譯過程: (a)填符號表:將定義否欄填 “ 未 ” ,地址檔暫填即將生成的四元式序號 P,CAT欄填 “ 標(biāo)號 ” ; (b)生成四元式 (P) (j,_,_,0),等待回填; NAME INFORMATION CAT …… .. 定義否 地址 …… …… .. L’ 標(biāo)號 未 q …… .. (c)當(dāng)遇到第 2個使用性標(biāo)號 L‘時,修改符號表,僅將 L’這一行的地址欄內(nèi)容修改為即將生成的四元式序號 q。 (b)生成四元式 (q) (j,_,_,P),其中第四段的 P取自符號表的地址欄在修改前的內(nèi)容,即形成一個需要回填的鏈,不斷重復(fù) (c)(d). NAME INFORMATION CAT …… .. 定義否 地址 …… …… .. L’ 標(biāo)號 未 r …… .. (p) (j,_,_,0) (q) (j,_,_,p) (r) (j,_,_,q) 第四節(jié) 控制語句的翻譯 ? 二、標(biāo)號和轉(zhuǎn)移語句 (GOTO) ? 先使用后定義 ? (2)翻譯過程: ? e)當(dāng)定義性語句 L’:S出現(xiàn)時,用 S語句所對應(yīng)的第一個四元式序號回填這個鏈,即使用 BACKPATCH過程。 ? 注:此鏈表的鏈?zhǔn)自诜柋淼南鄳?yīng)行的地址欄內(nèi)。 ? (3)形式化的語義子程序: ? 產(chǎn)生式 語義子程序 ? S goto L 程序 1 ? label i: 程序 2 ? {查符號表: ? 若 L不在表中,在表中建 L這行, CAT欄置標(biāo)號,定義否填 “ 未 ” ,地址為 NXQ。GEN(j,_,_,0)。 ? 若 L在表中,但未定義,則 。P=L 地址; NXQ。GEN(j,_,_,p)。 若 L在表中,已定義,則 :P=; GEN(j,_,_,p)。 } ? {查符號表: ? 若 L不在表中,在表中建 L這行, CAT欄置標(biāo)號,定義否填 “ 已 ” ,地址為 NXQ。 ? 若 L已在表中,但定義否填 “ 已 ” 或 CAT標(biāo)號,則出錯; 否則, {將定義否改為 “ 已 ” ; q=; BACKPATCH()。 =NXQ。} } 第四節(jié) 控制語句的翻譯 ? 三、 IF語句的翻譯 ? 描述 IF語句的文法 ? S if E then S(1) ? S if E then S(1) else S(2) ? IF語句的翻譯 ? (1)完成對布爾式 E的翻譯,獲得一元四元式,并留下兩個待續(xù)的語義值 E● EC, E● FC。 ? (2)掃描完 then之后,就得到了 E的真出口,用BACKPATCH(E● EC,NXQ)過程或填; ? (3)翻譯 S(1),它可能會是任何一種語句,總可以遞歸地調(diào)用語句翻譯過程來完成,得到一組四元式序列; 第四節(jié) 控制語句的翻譯 ? 三、 IF語句的翻譯 ? IF語句的翻譯 ? (4)若遇到 else,表示 S(1)已翻譯完,應(yīng)無條件生成一條 GOTO四元式 (j,_,_,0)轉(zhuǎn)到 S(2)語句后面,以示這個 IF語句已執(zhí)行結(jié)束。但這個無條件轉(zhuǎn)移語句究竟轉(zhuǎn)到什么地方去 ,是不確定的 .甚至在翻譯完S(2)語句之后也不一定確定下來。遇到 else還表示已獲得 E的假出口。 ? 例如:語句 ? if E1 then if E2 then S1 else S2 else S3 ? 注:由于轉(zhuǎn)移指令的轉(zhuǎn)移目標(biāo)只能等到出口明朗了才能回填。此時應(yīng)把該待填的四元式序號并鏈后存在與代表整個語句的非終結(jié)符 S相聯(lián)系的語義棧 S● CHAIN中。 第四節(jié) 控制語句的翻譯 ? 三、 IF語句的翻譯 ? IF語句的翻譯 ? (4)若不遇到 else,那么布爾式的假出口與 S(1)的結(jié)束出口都表示 IF語句的結(jié)束。 ? (5)翻譯 S(2)語句成四元式序列。它執(zhí)行過后也表示IF語句應(yīng)該結(jié)束了,它的結(jié)束出口和 S(1)是一樣的,可將它們出口并鏈,鏈?zhǔn)字糜?S● CHAIN. ? 姑,條件語句翻譯之后,除了生成相應(yīng) E,S(1),S(2)的四元式之外,還剩下一個待填語句鏈,鏈?zhǔn)自? S● CHAIN中,出口明確后接此回填。 第四節(jié) 控制語句的翻譯 ? 三、 IF語句的翻譯 ? 改寫產(chǎn)生式 ? S if E then S(1)else S(2)改寫為: C if E then T C S(1)else S T S(2) S if E then S(1)改寫為: C if E then S CS(1) 第四節(jié) 控制語句的翻譯 ? 三、 IF語句的翻譯 ? 語義子程序 ? C if E then {BACKPATCH(E● EC,NXQ)。 C● CHAIN=E● FC。} T CS(1) else {q=NXQ。GEN(j,_,_,0)。 BACKPATCH(C● CHAIN,NXQ)。 T● CHAIN=MERG(S(1)● CHAIN,q)} S TS(2) {S● CHAIN=MERG(T● CHAIN, S(2)● CHAIN)} S CS(1) {S● CHAIN=MERG(T● CHAIN, S(2)● CHAIN)} 第四節(jié) 控制語句的翻譯 ? 例如:翻譯無條件嵌套語句: ? if a then ? if b then ? A:=2 ? else A:=3 ? ELSE if c then ? A:=4 ? Else A:=5 ? 翻譯成四元式為: (1)(jnz,a,_,0) (2)(j,_,_,0) (3)(jnz,b,_,0) (4)(j,_,_,0) (5)(:=,2,_,A) (6)(j,_,_,0) (7)(:=,3,_,A) (8)(j,_,_,0) 第四節(jié) 控制語句的翻譯 ? (1)(jnz,a,_,0) ? (2)(j,_,_,0) ? (3)(jnz,b,_,0) ? (4)(j,_,_,0) ? (5)(:=,2,_,A) ? (6)(j,_,_,0) ? (7)(:=,3,_,A) ? (8)(j,_,_,0) (8)(j,_,_,6) (9)(jnz,c,_,11) (10)(j,_,_,13) (11)(:=,4,_,A) (12)(j,_,_,8) (13)(:=,5,) a S4(A:=5) b S1(A:=2) S2(A:=3) c S3(A:=4)
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1