編譯原理第二章 上下文無關文法和形式語言

2021-09-24 03:14:25 字數 1007 閱讀 9736

2.1 對於文法g[z],已知u是句型,則判斷(d)是正確的

a 只要使用規範推導,無論如何一定可以從z推導出u

b 只要依據產生式進行規範歸約,則u一定可以歸約成z

c 上面的a和b都是對的

d 上面的a和b都是錯的

2.2 由「非終結符-->符號串」這種產生式構成的文法是(c)

a 0型語法 b 1型文法 c 2型文法 d 3型文法

2.3 二義文法是指(d)

a 對應於兩棵不同語法樹的文法

b 對應於兩種不同推導的文法

c 文法中任何乙個非終結符,都存在以它為左部的兩個不同產生式

d a、b、c都是錯的

2.6 若乙個文法是遞迴的,則它產生的句子個數是(a)

a 無窮個 b 可能有限個,可能無窮個 c 有限個

2.8 乙個語言的文法是(b)

a 唯一的 b 不唯一的 c 個數有限的 d 無數個

2.9 文法識別符號經過任意步推導得到的結果是(a)

a 句型 b 控制代碼 c 句子 d 短語

2.10 文法分為四種型別:0型文法、1型文法、2型文法、3型文法,其中3型文法是(b)

a 短語文法 b 正規文法 c 上下文有關文法 d 上下文無關文法

2.11 在編譯中產生語法樹是為了(a)

a 語法分析 b 語義分析 c 詞法分析 d 目標**生成

2.12 乙個上下文無關文法包含四個部分,一組非終結符,一組終結符,乙個開始符號以及一組(c)

a 句子 b 句型 c 產生式 d 單詞

2.13 自下而上的語法分析中,應從(c)開始分析

a 開始符號 b 控制代碼 c 句子 d 句型

2.14 如果乙個文法是二義文法,必然有(abcd)的現象存在

a 文法的某乙個句子存在兩棵或兩棵以上的語法樹

b 對於文法的某乙個句子,存在兩種或兩種以上的最左(最右)推導

c 對於文法的某乙個句子,存在兩種或兩種以上的最左(最右)歸約

d 在進行歸約時,文法的某些規範控制代碼不唯一

編譯原理 上下文無關文法

學完了詞法分析,我們知道詞法分析器將正規表示式轉換成詞法單元流,但對於這個記號流我們不知道是否能由正確的文法產生,因此我們需要通過語法分析器來檢測其合法性。語法分析器的輸出是一棵語法分析樹 無論顯性還是隱性 並且進行一些語法糾錯處理。語法分析的整個過程大概就是我們先定義乙個語法,再用相應的演算法來檢...

編譯原理 什麼是上下文無關文法?

上下文無關是指,一句話的含義與其前後的內容沒有或者幾乎沒有關係,只由自己決定,把它剪下到其他任何位置,也還是原有的意思。例如 a 0 這是乙個賦值語句,無論此語句的前後是什麼 此語句所代表的操作是確定的。即 給變數a賦予值0 換句話說,cpu遇到什麼語句就執行什麼語句,不用管其他的。程式語言為什麼不...

正則文法和上下文無關文法

對於文法g v,t,s,p 如果產生式的形式如下 a xb a x 其中a,b屬於v,x屬於t 則稱為右線性文法 相似的,如果產生式的形式如下 a bx a x 則稱為左線性文法。右線性文法和左線性文法統稱為正則文法。正規表示式的表達能力等價於正則文法,正規表示式的定義如下 字母表中的任意字母是正規...