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 則稱為左線性文法。右線性文法和左線性文法統稱為正則文法。正規表示式的表達能力等價於正則文法,正規表示式的定義如下 字母表中的任意字母是正規...