編譯原理習題(含答案)——8-10語法制導翻譯——哈工大陳鄞配套版本
語法制導翻譯_1
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. 錯
相關推薦
編譯原理習題(含答案)——8-10語法制導翻譯——哈工大陳鄞配套版本
語法制導翻譯_11 文法G[S]及其語法制導翻譯定義如下:產生式 語義動作S’ → S print( S.num)S → ( L) S.num = L.num +1S → a S.num = 0L →L( 1), S L.num = L( 1).num + S.numL →
編譯原理習題(含答案)——20程式碼生成——哈工大陳鄞配套版本
www.jmzhang.com 點我QQ聯絡博主 點我給博主發郵件 /*code is far away from bug *with the animal protecting * ┏┓ ┏┓ *┏┛┻━━━┛┻┓ *┃
編譯原理習題(含答案)——16-19程式碼優化——哈工大陳鄞配套版本
程式碼優化_11 優化可生成()的目的碼。A. 執行時間較短B. 佔用儲存空間較小C. 執行時間短但佔用記憶體空間大D. 執行時間短且佔用儲存空間小2 基本塊內的優化為 ( )。A. 程式碼外提,刪除歸納變數B. 刪除多餘運算,刪除無用賦值C. 強度削弱,程式碼外提D. 迴圈
58前端內推筆試2017(含答案)
轉發 css3 jsonp 會有 head chrome瀏覽器 byname html中 gethostby 1.填空題 (1)獲取隨機數的方法:Math.random (2)JS中獎一個變量前置強制改成浮點類型的方法:parseFloat(String) (3)根據id獲
springmvc和mybatis面試題(含答案)
理解 頁面 發送請求 緩存 固定 sql tor 組件 poj 轉載:http://blog.csdn.net/xinghuo0007/article/details/53463897 Spring MVC Framework有這樣一些特點: 1。它是基於組件技術的.全部的
Java線程面試題合集(含答案)
call 獲取鎖 getter 監控 同步方法和同步塊 答案 協調 1.8 標記 來源:Java線程面試題 下面是我自己收集整理的Java線程相關的面試題,可以用它來好好準備面試。 參考文檔: 《Java核心技術 卷一》 Java線程面試題 To
Struts2、Hibernate、Spring面試筆試題(含答案)
Hibernate工作原理及為什麼要用? 原理: 1.讀取並解析配置檔案 2.讀取並解析對映資訊,建立SessionFactory 3.開啟Sesssion 4.建立事務Transation
javascript問答(含答案)
1.我們可以在下列哪個 HTML 元素中放置 Javascript 程式碼? 您的回答:<script> 2.寫 "Hello World" 的正確 Javascript 語法是? 您的回答:document.write("Hello World") 3.插入 Javacript
併發程式設計44題(含答案)
1、併發程式設計三要素? 1)原子性 原子性指的是一個或者多個操作,要麼全部執行並且在執行的過程中不被其他操作打斷,要麼就全部都不執行。 2)可見性 可見性指多個執行緒操作一個共享變數時,其中一個執行緒對變數進行修改後,其他執行緒可以立即看到修改的結果。 實現可見性的方法:
JavaScrip常見面試題彙總(含答案)
一、請解釋 JavaScript 中 this 是如何工作的。 首先:this 永遠指向函式執行時所在的物件,而不是函式被建立時所在的物件。匿名函式或不處於任何物件中的函式指向 window 。 1、 方法呼叫模式 當函式被儲存為物件的一個屬性時,成該函式為該物件的方法。函式中this的
zookeeper任務與面試 重點(含答案)
任務 安裝zookeeper 練習zookeeper命令 面試重點 zookeeper是幹什麼的? Zookeeper 是 分散式協調服務,分散式應用程式可以基於它實現同步服務,配置維護和命名服務等 說說zookeeper半數機制 舉例說明:3臺和4臺的區別。
最全MySQL面試60題(含答案):儲存引擎+資料庫鎖+索引+SQL優化
Mysql中有哪幾種鎖? MyISAM支援表鎖,InnoDB支援表鎖和行鎖,預設為行鎖 表級鎖:開銷小,加鎖快,不會出現死鎖。鎖定粒度大,發生鎖衝突的概率最高,併發量最低 行級鎖:開銷大,加鎖慢,會出現死鎖。鎖力度小,發生鎖衝突的概率小,併發度最高 Mysql中有哪些
年終總結:java筆試題49道 收藏版(含答案)
1、在Java EE中,Servlet是在伺服器端執行,以處理客戶端請求而做出的響應的程式,下列選項中屬於Servlet生命週期階段的是( ) A、載入和例項化 B、初始化 C、服務 D、銷燬 E、以上全部 答案:E 2、在Java EE中的MVC設計模式中,(
資料結構面試題(含答案)
1.棧和佇列的共同特點是(只允許在端點處插入和刪除元素) 4.棧通常採用的兩種儲存結構是(線性儲存結構和連結串列儲存結構) 5.下列關於棧的敘述正確的是(D) A.棧是非線性結構B.棧是一種樹狀結構C.棧具有先進先出的特徵D.棧有後進先出的特徵 6.連結串列不具有的特點是(B)A.不必事先估計儲存
最全的Unity面試題(含答案)
一.什麼是渲染管道? 是指在顯示器上為了顯示出影象而經過的一系列必要操作。 渲染管道中的很多步驟,都要將幾何物體從一個座標系中變換到另一個座標系中去。 主要步驟有: 本地座標->檢視座標->背面裁剪->光照->裁剪->投影->
Java執行緒面試題合集(含答案)
下面是我自己收集整理的Java執行緒相關的面試題,可以用它來好好準備面試。 參考文件: 《Java核心技術 卷一》 Java執行緒面試題 Top 50:http://www.importnew.com/12773.html JAVA多執行緒和併發基礎面試問答: htt
史上最全的Unity面試題(含答案)
一.什麼是渲染管道? 是指在顯示器上為了顯示出影象而經過的一系列必要操作。 渲染管道中的很多步驟,都要將幾何物體從一個座標系中變換到另一個座標系中去。 主要步驟有: 本地座標->檢視座標->背面裁剪->光照->裁剪->投影->檢視變換->光柵化。
c++面試題整理(含答案)
知乎連結: 校招主要考察基礎和思維,主要涉及C++語言基礎,資料結構與演算法,TCP/IP協議,網路程式設計,Linux。 C和C++語言基礎 參考書籍:《C++ primer》,《effective C++》,《STL原始碼解析》,《深度搜索C++物件模型》
《演算法導論》第一章第一節習題(沒有答案)
1.1-1 給出一個真實世界的例子, 其中包含著下列某種計算問題:排序, 確定多矩陣相乘的最佳順序, 或者找出凸殼。 1.1-2 除了執行速度以外,在真實世界問題背景中,還可以使用哪些效率指標? 1.1-3 選擇你見過的某種資料結構, 討論一下其長處和侷限性。 1.1-4 上文中給出的最短路
騰訊2016校招筆試題(含答案)
騰訊2016校招筆試題(含答案) 1、父母生了兩個小孩。第一個是男孩,兩個都是男孩的概率是多少? 答案:1/2 解釋:第一個已經為男孩,第二個只有兩種可能男孩或女孩 概率=1乘二分之一 2、設k1,