1. 程式人生 > >編譯原理習題(含答案)——8-10語法制導翻譯——哈工大陳鄞配套版本

編譯原理習題(含答案)——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,