【最新合集】编译原理习题(含答案)_11-14中间代码生成_MOOC慕课 哈工大陈鄞
【最新合集】MOOC哈工大陳鄞 編譯原理答案全集——>傳送門
中間代碼生成_1
1 中間代碼生成時(shí)所依據(jù)的是( )。
A. 語法規(guī)則
B. 詞法規(guī)則
C. 語義規(guī)則
D. 等價(jià)變換規(guī)則
?
?
2 在編譯程序中與中間代碼生成無關(guān)的是( )。
A. 便于目標(biāo)代碼的優(yōu)化
B. 便于存儲(chǔ)空間的組織
C. 便于編譯程序的移植
D. 便于目標(biāo)代碼的移植
?
?
3 以下說法不正確的是( )。
A. 對(duì)于聲明語句,語義分析的主要任務(wù)就是收集標(biāo)識(shí)符的類型等屬性信息,為每一個(gè)名
字分配一個(gè)相對(duì)地址
B. 從變量類型可以知道該變量在運(yùn)行時(shí)刻需要的內(nèi)存數(shù)量。在編譯時(shí)刻,可以使用這些
數(shù)量為每一個(gè)名字分配一個(gè)相對(duì)地址
C. 名字的類型和相對(duì)地址信息保存在相應(yīng)的符號(hào)表?xiàng)l目中
D. 對(duì)聲明的處理要構(gòu)造符號(hào)表,但不產(chǎn)生中間代碼
?
?
4 以下說法不正確的是( )。
A. 類型自身也有結(jié)構(gòu),用類型表達(dá)式來表示這種結(jié)構(gòu)
B. 基本類型不是類型表達(dá)式
C. 類型名也是類型表達(dá)式
D. 將類型構(gòu)造符作用于類型表達(dá)式可以構(gòu)成新的類型表達(dá)式
?
?
5 數(shù)組元素的地址計(jì)算與數(shù)組的存儲(chǔ)方式有關(guān)。
A. 對(duì)
B. 錯(cuò)
?
?
6 在程序中標(biāo)識(shí)符的出現(xiàn)僅為使用性的。
A. 對(duì)
B. 錯(cuò)
?
?
7 在編譯階段只對(duì)可執(zhí)行語句進(jìn)行翻譯。
A. 對(duì)
B. 錯(cuò)
?
?
8 在程序中標(biāo)識(shí)符的出現(xiàn)僅為定義性的。
A. 對(duì)
B. 錯(cuò)
?
?
第12講 中間代碼生成_2
1 有文法G及其語法制導(dǎo)翻譯如下所示( 語義規(guī)則中的*和+分別是常規(guī)意義下的算術(shù)運(yùn)算符):
E→E(1) ∧ T {E.val = E(1).val * T.val}
E→T {E.val = T.val}
T→T(1)# n {T.val = T(1).val + n.val }
T→ n {T.val = n.val}
?
?
則分析句子1 ∧ 2 ∧ 3 # 4其值為( )。
A. 10
B. 34
C. 14
D. 54
?
?
2 用( )可以把a(bǔ):=b+c翻譯成四元式序列。
A. 語法規(guī)則
B. 詞法規(guī)則
C. 語義規(guī)則
D. 等價(jià)變換規(guī)則
?
?
3 有文法G及其語法制導(dǎo)翻譯如下所示( 語義規(guī)則中的*和+分別是常規(guī)意義下的算術(shù)運(yùn)算符):
E→E(1) ∧ T {E.val = E(1).val * T.val}
E→T {E.val = T.val}
T→T(1)# n {T.val = T(1).val + n.val }
T→ n {T.val = n.val}
則分析句子2 ∧ 3 # 4其值為( )。
A. 10
B. 21
C. 14
D. 24
?
?
4 以下說法不正確的是( )。
A. 賦值語句翻譯的主要任務(wù)是生成對(duì)表達(dá)式求值的三地址碼
B. 在增量翻譯方法中,gen( )函數(shù)不僅要構(gòu)造出一個(gè)新的三地址指令,還要將它添加到
至今為止已生成的指令序列之后
C. 如果一個(gè)賦值語句中涉及到數(shù)組元素,那么將該語句翻譯成三地址碼時(shí)要解決的主要
問題是確定數(shù)組元素的存放地址,也就是數(shù)組元素的尋址
D. 數(shù)組元素的地址計(jì)算與數(shù)組的存儲(chǔ)方式無關(guān)
?
?
5 數(shù)組元素的地址由兩部分構(gòu)成,一部分是基地址,另一部分是偏移量。
A. 對(duì)
B. 錯(cuò)
?
?
6 基地址通過查符號(hào)表即可獲得。
A. 對(duì)
B. 錯(cuò)
?
?
7 數(shù)組元素的偏移地址的計(jì)算只取決于數(shù)組的下標(biāo)。
A. 對(duì)
B. 錯(cuò)
?
?
8 設(shè)計(jì)數(shù)組引用的SDT的關(guān)鍵問題是:如何將地址計(jì)算公式和數(shù)組引用的文法關(guān)聯(lián)起來。
A. 對(duì)
B. 錯(cuò)
?
?
中間代碼生成_3
1 關(guān)于布爾表達(dá)式的敘述,不正確的是( )。
A. 布爾常量是布爾表達(dá)式
B. 布爾常量不是布爾表達(dá)式
C. 關(guān)系表達(dá)式是布爾表達(dá)式
D. 將括號(hào)和邏輯運(yùn)算符作用于布爾表達(dá)式得到一個(gè)新的布爾表達(dá)式
?
?
2 以下說法不正確的是( )。
A. 為布爾表達(dá)式和控制流語句生成目標(biāo)代碼時(shí),關(guān)鍵問題之一是確定跳轉(zhuǎn)指令的目標(biāo)標(biāo)
號(hào)
B. 在生成跳轉(zhuǎn)指令時(shí),就可以確定目標(biāo)標(biāo)號(hào)
C. 在生成跳轉(zhuǎn)指令時(shí),目標(biāo)標(biāo)號(hào)還不能確定
D. 可以將標(biāo)號(hào)的地址作為繼承屬性傳遞到生成相關(guān)跳轉(zhuǎn)指令的地方,但是這樣的做法需
要再進(jìn)行一趟處理,將標(biāo)號(hào)和具體地址綁定起來
?
?
3 令非終結(jié)符B表示布爾表達(dá)式,為B設(shè)置兩個(gè)繼承屬性true和false。B.true是一個(gè)地址,該地址中存放了當(dāng)B為真時(shí)控制流轉(zhuǎn)向的指令的標(biāo)號(hào);B.false也是一個(gè)地址,該地址中存放了當(dāng)B為假時(shí)控制流轉(zhuǎn)向的指令的標(biāo)號(hào),則下列SDT中不正確的是( )。
?
?
4 令非終結(jié)符B表示布爾表達(dá)式,為B設(shè)置兩個(gè)繼承屬性true和false。B.true是一個(gè)地址,該地址中存放了當(dāng)B為真時(shí)控制流轉(zhuǎn)向的指令的標(biāo)號(hào);B.false也是一個(gè)地址,該地址中存放了當(dāng)B為假時(shí)控制流轉(zhuǎn)向的指令的標(biāo)號(hào),則下列SDT中不正確的是( )。
?
?
5 在分支和循環(huán)中會(huì)用到條件式,而用作條件式的通常是布爾表達(dá)式。
A. 對(duì)
B. 錯(cuò)
?
?
6 在控制流語句的翻譯中,布爾表達(dá)式B被翻譯成由跳轉(zhuǎn)指令構(gòu)成的跳轉(zhuǎn)代碼。
A. 對(duì)
B. 錯(cuò)
?
?
7 邏輯運(yùn)算符&&、|| 和 ! 會(huì)出現(xiàn)在代碼中。
A. 對(duì)
B. 錯(cuò)
?
?
8在跳轉(zhuǎn)代碼中,邏輯運(yùn)算符&&、|| 和 ! 被翻譯成跳轉(zhuǎn)指令。
A. 對(duì)
B. 錯(cuò)
?
?
中間代碼生成_4
1 令非終結(jié)符B表示布爾表達(dá)式。在布爾表達(dá)式的回填技術(shù)中,為非終結(jié)符B設(shè)置兩個(gè)綜合屬性:
B.truelist:指向一個(gè)包含跳轉(zhuǎn)指令的列表,這些指令最終獲得的目標(biāo)標(biāo)號(hào)就是當(dāng)B為真時(shí)控制流
應(yīng)該轉(zhuǎn)向的指令的標(biāo)號(hào);B.falselist:指向一個(gè)包含跳轉(zhuǎn)指令的列表,這些指令最終獲得的目標(biāo)
標(biāo)號(hào)就是當(dāng)B為假時(shí)控制流應(yīng)該轉(zhuǎn)向的指令的標(biāo)號(hào)。則下列SDT中不正確的是()。
?
?
2 在下面的語句中,( )不需要回填技術(shù)。
A. 賦值語句
B. goto語句
C. 條件語句
D. 循環(huán)語句
?
?
3 四元式之間的聯(lián)系是通過( )實(shí)現(xiàn)的。
A. 指示器
B. 臨時(shí)變量
C. 符號(hào)表
D. 程序變量
?
?
4 四元式表示法的優(yōu)點(diǎn)為 ( )。
A. 不便于優(yōu)化處理,但便于表的更動(dòng)
B. 不便于優(yōu)化處理,但節(jié)省存儲(chǔ)空間
C. 便于優(yōu)化處理,也便于表的更動(dòng)
D. 便于表的更動(dòng),也節(jié)省存儲(chǔ)空間
?
?
5 在回填技術(shù)中,生成一個(gè)跳轉(zhuǎn)指令時(shí),暫時(shí)不指定該跳轉(zhuǎn)指令的目標(biāo)標(biāo)號(hào)。
A. 對(duì)
B. 錯(cuò)
?
?
6 在回填技術(shù)中,同一個(gè)列表list中的跳轉(zhuǎn)指令具有相同的目標(biāo)標(biāo)號(hào)。
A. 對(duì)
B. 錯(cuò)
?
?
7 在回填技術(shù)中,同一個(gè)列表list中的跳轉(zhuǎn)指令可能具有不同的目標(biāo)標(biāo)號(hào)。
A. 對(duì)
B. 錯(cuò)
?
?
8 在回填技術(shù)中,等到能夠確定正確的目標(biāo)標(biāo)號(hào)時(shí),才去填充指令的目標(biāo)標(biāo)號(hào)。
A. 對(duì)
B. 錯(cuò)
整理不易, 如果對(duì)你產(chǎn)生了幫助, 還請(qǐng)點(diǎn)個(gè)贊哦~ Thanks?(・ω・)ノ
總結(jié)
以上是生活随笔為你收集整理的【最新合集】编译原理习题(含答案)_11-14中间代码生成_MOOC慕课 哈工大陈鄞的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【最新合集】编译原理习题(含答案)_8-
- 下一篇: 【两种解法】Quadtrees UVA