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

正文內(nèi)容

sun編譯原理第5章語法制導(dǎo)翻譯技術(shù)和中間代碼生成(第19-21講)-資料下載頁

2025-05-11 23:39本頁面
  

【正文】 而是將計(jì)算結(jié)果表示為程序執(zhí)行流程的轉(zhuǎn)移。此時(shí)E的值只需有兩個(gè)即可。所以 E被視為布爾表達(dá)式。E的真值被轉(zhuǎn)換為一個(gè)條件轉(zhuǎn)移,稱為 “ 真出口 ” 。E的假值被轉(zhuǎn)換為一個(gè)無條件轉(zhuǎn)移,稱為 “ 假出口 ” 。 最簡單的情況 E是一個(gè)布爾變量 a,那么有 12( jn z , , , )( jp , , , )aLL真出口 假出口 第 5章 語法制導(dǎo)翻譯技術(shù)和中間代碼生成 2021/6/15 信息學(xué)院 孫麗云 50 布爾量間的運(yùn)算除了一般的布爾代數(shù)運(yùn)算外,還有一種運(yùn)算方法,稱為 “ 短路布爾操作 ” 。它的意義是:對于一個(gè)二元布爾操作,如果根據(jù)第 1個(gè)布爾量的值就可以判斷這個(gè)布爾結(jié)果,那么就不必計(jì)算第 2個(gè)布爾量了。就是說,在某種情況下第 2個(gè)布爾量被短路了。 ■ 布爾表達(dá)式代碼生成 如,對于二元操作 a and b ,如果 a是假,不管 b 是什么, a and b 的結(jié)果都是假。所以 b被短路掉,就不用計(jì)算了,這種短路的操作對代碼來說是很重要的。有些時(shí)候, 沒被短路的操作會引起錯(cuò)誤 。例如: i f ( ( ! N U L L ) amp。 amp。 ( v a l 0) ) ...pp? ??→這是 C語言中常見的語句,但如果出現(xiàn) p==NULL 時(shí)還要對 p→ val求值將引起內(nèi)存錯(cuò)誤。 第 5章 語法制導(dǎo)翻譯技術(shù)和中間代碼生成 2021/6/15 信息學(xué)院 孫麗云 51 ? 短路的布爾操作類似于 if語句,它們經(jīng)常用 if表達(dá)式定義,例如: 21 1 21 2 1 2 a n d if th e n e l s e f a l s e o r if th e n tr u e e l s eE E E EE E E E??將 E1的真出口與全句的真出口并聯(lián), E1的假出口轉(zhuǎn)移至E2的第 1個(gè)四元式, E2的真出口是全句的真出口, E2的假出口是全句的假出口。 ■ 布爾表達(dá)式代碼生成 將 E1的真出口轉(zhuǎn)移至 E2的第 1個(gè)四元式, E1的假出口與全句假出口并聯(lián)(相同), E2的真出口就是全句的真出口, E2的假出口也是全句的假出口。 第 5章 語法制導(dǎo)翻譯技術(shù)和中間代碼生成 2021/6/15 信息學(xué)院 孫麗云 52 ■ 舉例 a amp。amp。 b,求其短路布爾操作四元式序列。 (1) (jnz,a, ,(3)) (2) (jp, , ,false) (3) (jnz,b, ,true) (4) (jp, , ,false) 依據(jù)布爾表達(dá)式的四元式定義可將其四元式代碼寫成: 例: 求表達(dá)式 ab || cd amp。amp。 ef 的短路布爾操作四元式序列。 true表示布爾表達(dá)式的真出口; false表示布爾表達(dá)式的假出口; 注意: amp。amp。優(yōu)先級高于 || a||b ? 練習(xí): 求表達(dá)式 x || y amp。amp。 z 的短路布爾操作四元式序列。 第 5章 語法制導(dǎo)翻譯技術(shù)和中間代碼生成 2021/6/15 信息學(xué)院 孫麗云 53 ■ 舉例 求下列語句的四元式序列。 if(ab || cd ) a=a*b。 else x=xy。 y=x*x。 (1)(,a,b,t1) (7)(*,a,b,t3) (2)(jnz,t1, ,(7)) (8)(=,t3, ,a) (3)(jp, , ,(4)) (9)(jp, , , (12)) (4)(,c,d,t2) (10)(,x,y,t4) (5)(jnz,t2, ,(7)) (11)(=,t4, ,x) (6)(jp, , ,(10)) (12)(*,x,x,t5) (13)(=,t5, ,y) ■ 練習(xí) 求下列語句的四元式序列。 if(ab||cdamp。amp。e) x=a*b+y。 else x=xy。 y=x+x。 第 5章 語法制導(dǎo)翻譯技術(shù)和中間代碼生成 2021/6/15 信息學(xué)院 孫麗云 54 ■ 循環(huán)語句中間代碼 循環(huán)語句的一般語法為: whi l e ( )? ??ESN Y 第 5章 語法制導(dǎo)翻譯技術(shù)和中間代碼生成 2021/6/15 信息學(xué)院 孫麗云 55 ? 循環(huán)語句生成的四元式序列的結(jié)構(gòu)如下: : ( ) ( jnz , , , ) ( jp , , , n e x t ) : ( ) ( jp, , , )EEE S EESSE的 四 元 式的 真 出 口的 假 出 口的 四 元 式whi l e ( )? ??ES■ 循環(huán)語句中間代碼 next: (后續(xù)程序四元式 ) 例:求 while(a==0) x=x*y。 z=x+y。的四元式序列。 第 5章 語法制導(dǎo)翻譯技術(shù)和中間代碼生成 2021/6/15 信息學(xué)院 孫麗云 56 ■ 循環(huán)語句中間代碼 for循環(huán)語句的語法為: for(E1。E2。E3) S。 生成的四元式序列的結(jié)構(gòu)如下: (E1的四元式 ) E2: (E2的四元式 ) (jnz,E2, ,S) E2的真出口 (jp, , ,next) E2的假出口 S: (S的四元式 ) (E3的四元式 ) (jp, , ,E2) next: (后續(xù)程序四元式 ) 可將其改寫成 while循環(huán)的格式,再進(jìn)行中間代碼的翻譯。 例:求 for(i=0。i3。i++) x=x+1。 y=x。 的四元式。 第 5章 語法制導(dǎo)翻譯技術(shù)和中間代碼生成 2021/6/15 信息學(xué)院 孫麗云 57 ■ 小結(jié) if (a || camp。amp。d || e ) x=x*y。 else x=xy。 y=x*x。 if ( E ) S。 if (E) S1 else S2。 分支語句: E1 amp。amp。 E2 。 E1 || E2。 布爾表達(dá)式: while (E) S。 for(E1。E2。E3) S。 循環(huán)語句: for (a=0,d=10 。 d 。 d ,a++) x=x+a*d。 x=x*x。 各種程序設(shè)計(jì)語言的中間代碼: ! 第 5章 語法制導(dǎo)翻譯技術(shù)和中間代碼生成 2021/6/15 信息學(xué)院 孫麗云 58 有語句如下: while(AB || CD amp。amp。 E) if(x= =0) x=y*z。 else x=y+z。 z=x。 求四元式序列(翻譯)。 ■ 綜合練習(xí) 具體過程說明。 第 5章 語法制導(dǎo)翻譯技術(shù)和中間代碼生成 2021/6/15 信息學(xué)院 孫麗云 59 ■ 本章小結(jié) 屬性文法 ——語義規(guī)則的描述工具; 屬性文法和上下文無關(guān)文法關(guān)系密切; 屬性文法分為:綜合屬性和繼承屬性。 語法制導(dǎo)的翻譯 ——語義分析方法; 完成 2項(xiàng)工作: 靜態(tài)語義分析;生成中間代碼; 語法制導(dǎo)翻譯的 基本思想 。 第 5章 語法制導(dǎo)翻譯技術(shù)和中間代碼生成 2021/6/15 信息學(xué)院 孫麗云 60 有一屬性文法為: ( 1) P ? bQb {print:”1”} ( 2) Q ? cR {print:”2”} ( 3) Q ? a {print:”3”} ( 4) R ? Qad {print:”4”} 輸入串為 bcaadb,且采用自底向上語法分析時(shí),則輸出序列是? ■ 語法制導(dǎo)翻譯舉例 自測練習(xí)題 5 作業(yè):習(xí)題 5
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1