【最新合集】编译原理习题(含答案)_8-10语法制导翻译_MOOC慕课 哈工大陈鄞
【最新合集】MOOC哈工大陳鄞 編譯原理答案全集——>傳送門
1 文法G[S]及其語法制導翻譯定義如下:
產生式 語義動作
S’ → S print( S.num)
S → ( L) S.num = L.num +1
S → a S.num = 0
L →L( 1), S L.num = L( 1).num + S.num
L →S L.num = S.num
若輸入為( a,( a)),且采用自底向上的分析方法,則輸出為( )。
A. 0
B. 1
C. 2
D. 4
?
?
2 有文法G及其語法制導翻譯如下所示( 語義規則中的*和+分別是常規意義下的算術運算符):
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}
則分析句子3 ∧ 3 # 4其值為()。
A. 10
B. 21
C. 14
D. 24
?
?
3 有一語法指導定義如下:
S→bAb print “1”
A→( B print “2”
A→a print “3”
B→aA) print “4”
若輸入序列為b( a( a( aa)))b,且采用自底向上的分析方法,則輸出序列為( )。
A. 32224441
B. 34242421
C. 12424243
D. 34442212
?
?
4 有一語法指導定義如下,其中+表示符號連接運算:
S→B print B.vers
B→a B.vers=a
B→b B.vers=b
B→Ba B.vers=a+B.vers
B→Bb B.vers=b+B.vers
若輸入序列為abab,且采用自底向上的分析方法,則輸出序列為( )。
A. aabb
B. abab
C. bbaa
D. Baba
?
?
5 使用( )可以定義一個程序的意義。
A. 語義規則
B. 詞法規則
C. 產生規則
D. 詞法規則
?
?
6 以下說法正確的是( )。
A. 語義規則中的屬性有兩種:綜合屬性與繼承屬性
B. 終結符只有繼承屬性,它由詞法分析器提供
C. 非終結符可以有綜合屬性,但不能有繼承屬性
D. 屬性值在分析過程中可以進行計算,但不能傳遞
?
?
7終結符具有( )屬性。
A.抽象
B.傳遞
C.綜合
D.繼承
?
?
語法制導翻譯_2
1 關于將L-SDD轉換為SDT的規則,以下選項中,正確的是( )。
A. 將計算某個非終結符號A的繼承屬性的動作放在產生式的最后
B. 將計算一個產生式左部符號的繼承屬性的動作放置在產生式的最后
C. 將計算某個非終結符號A的繼承屬性的動作插入到產生式右部中緊靠在A的本次出現
之前的位置上
D. 將每個語義動作都放在產生式的最后
?
?
2 以下說法不正確的是( )。
A. 如果一個S-SDD的基本文法可以使用LR分析技術,那么它的SDT可以在LL語法分析
過程中實現
B. 如果一個S-SDD的基本文法可以使用LR分析技術,那么它的SDT可以在LR語法分析
過程中實現
C. 如果一個L-SDD的基本文法可以使用LL分析技術,那么它的SDT可以在LL語法分析
過程中實現
D. 如果一個L-SDD的基本文法可以使用LL分析技術,那么它的SDT可以在LR語法分析
過程中實現
?
?
3 以下說法不正確的是( )。
A. 使用語法制導翻譯方案的編譯程序能同時進行語法分析和語義分析
B. 語法制導翻譯方案( SDT )是在產生式右部中嵌入了程序片段( 稱為語義動作)的CFG
C. SDD可以看作是SDT的具體實施方案
D. 將一個S-SDD轉換為SDT的方法是:將每個語義動作都放在產生式的最后
?
?
4 在非遞歸的預測分析過程中進行翻譯,以下說法不正確的是( )。
A. 要想在非遞歸的預測分析過程中進行翻譯,需要擴展語法分析棧
B. 非終結符A的繼承屬性和綜合屬性的計算時機不同
C. 將非終結符A的繼承屬性和綜合屬性存放在不同的記錄中
D. 綜合屬性在A出現之前就可以計算
?
?
5 在非遞歸的預測分析過程中進行翻譯,以下說法不正確的是( )。
A. 要想在非遞歸的預測分析過程中進行翻譯,需要擴展語法分析棧
B. 綜合記錄用于存放非終結符綜合屬性值
C. 動作記錄,用來存放指向將被執行的語義動作代碼的指針
D. 綜合屬性存放在A本身的記錄中
?
?
6 在非遞歸的預測分析過程中進行翻譯,以下說法不正確的是( )。
A. 分析棧中的每一個記錄都對應著一段執行代碼
B. 綜合記錄出棧時,要將綜合屬性值復制給后面特定的語義動作
C. 變量展開時( 即變量本身的記錄出棧時),如果其含有繼承屬性,則要將繼承屬性值
復制給后面特定的語義動作
D. 繼承屬性在A的兒子們都分析完畢之后才能計算
?
?
語法制導翻譯_3
1 在遞歸的預測分析過程中進行翻譯,以下說法不正確的是( )。
A. 可以將一個遞歸的預測分析器擴展為一個翻譯器
B. 在語法分析器中,每個非終結符A對應一個過程,在做語義分析時,要將過程擴展成
一個函數
C. 以繼承屬性作為函數的參數,以綜合屬性作為函數的返回值
D. 以綜合屬性作為函數的參數,以繼承屬性作為函數的返回值
?
?
2 在遞歸的預測分析過程中進行翻譯,以下說法不正確的是( )。
A. 在語法分析器中,每個非終結符A對應一個過程,在做語義分析時,要將過程擴展成
一個函數
B. 對出現在A產生式右部中的每個文法符號的每個屬性都設置一個局部變量
C. 如果非終結符含有繼承屬性,需要將函數調用的返回值賦給相應的局部變量
D. 對于產生式右部的每個動作,將其代碼復制到語法分析器,并把對屬性的引用改為對
相應變量的引用
?
?
3 以下說法不正確的是( )。
A. 語法制導翻譯方案只限自底向上的分析方法
B. 給定一個以LL文法為基礎的L-SDD,可以修改這個文法,并在LR語法分析過程中計
算這個新文法之上的SDD
C. 對于這個內嵌的語義動作,向文法中引入一個標記非終結符M來替換它
D. 每個標記非終結符M對應著一個空產生式M→ ε,該產生式對應著一段語義子程序,
它的任務就是完成M所替換的那個語義動作要完成的工作
?
?
4 給定一個以LL文法為基礎的L-屬性定義,可以修改這個文法,并在LR語法分析過程中計算這個新
文法之上的SDD。
A. 對
B. 錯
?
?
5 在各個非終結符之前放置語義動作來計算它的繼承屬性, 并在產生式后端放置語義動作計算綜合屬性。
A. 對
B. 錯
?
?
6 在各個非終結符之前放置語義動作來計算它的綜合屬性, 并在產生式后端放置語義動作計算繼承屬性。
A. 對
B. 錯
?
?
7 對每個內嵌的語義動作,向文法中引入一個標記非終結符來替換它。每個這樣的位置都有一個不
同的標記,并且對于任意一個標記M都有一個產生式M→ε。
A. 對
B. 錯
整理不易, 如果對你產生了幫助, 還請點個贊哦~ Thanks?(・ω・)ノ
總結
以上是生活随笔為你收集整理的【最新合集】编译原理习题(含答案)_8-10语法制导翻译_MOOC慕课 哈工大陈鄞的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【最新合集】编译原理习题(含答案)_4-
- 下一篇: 【最新合集】编译原理习题(含答案)_11