由定義1定義的不加任何限制的文法
由0型文法產生的語言稱為無限制性語言
生成式的形式為α
\alpha
α→\rightarrow
→β\beta
β,其中∣α∣
|\alpha|
∣α∣≤
\leq≤∣β
∣|\beta|
∣β∣,且α
\alpha
α,β\beta
β∈\in∈(n
⋃t)+
(n\bigcup)^+
(n⋃t)+
,且α
\alpha
α至少含有乙個非終結符號。
p特點:每個生成式左部字串長度小於等於右部字串長度
由1型文法產生的語言稱為上下文有關語言
生成式的形式為aaa→
\rightarrow
→α\alpha
α,aa
a∈\in∈nn
n且α\alpha
α∈\in∈(n
⋃t)+
(n\bigcup)^+
(n⋃t)+
p特點:每個生成式的左部是單個非終結符
由2型文法產生的語言稱為上下文無關語言
其常見表示形式有
(1) 巴科斯正規化(bnf, backus normal form)
例:用bnf表示法描述十進位制數的文法的生成式
《十進位制數》::=《無符號整數》|《十進位制小數》|《無符號整數》《十進位制小數》
《十進位制小數》::=.《無符號整數》
《無符號整數》::=《數字》|《數字》《無符號整數》
《數字》::=0|1|2|3|4|5|6|7|8|9
(2) 語法圖
右線性文法:生成式的形式為aaa→
\rightarrow
→ω\omegaωbb
b或aa
a→\rightarrow
→ω\omega
ω,aa
a,bb
b∈\in∈nn
n,ω\omega
ω∈\in∈t∗
t^*t∗
左線性文法:生成式的形式為aaa→
\rightarrow→bb
bω\omega
ω或aa
a→\rightarrow
→ω\omega
ω,aa
a,bb
b∈\in∈nn
n,ω\omega
ω∈\in∈t∗
t^*t∗
由3型文法產生的語言稱為正則語言
1、2、3型文法都是在0型聞法得前提下所加的限制,所以必然屬於0型文法
1型文法不允許形式為aaa→
\rightarrow
→ω\omega
ω的生成式存在,所以具有aaa→
\rightarrow
→ω\omega
ω生成式的2型文法或3型文法不屬於1型文法
如果2型文法或3型文法沒有aaa→
\rightarrow
→ω\omega
ω生成式存在,則其屬於1型文法
編譯原理 第二章 語言及其文法
1 基本概念 串是乙個有窮符號 symbol 序列 串s的長度,通常記作 s 是指s中符號的個數 空串 empty string 是長度為0的串,用 epsilon 表示 0 2 基本運算 如果x和y是串,那麼x和y的連線 concatenation 是把y附加到x後面而形成的串,記作xy 注意 s...
編譯原理 第二章 程式語言及其文法
1 文法 g s xsx y所識別的語言是 x n y x n 2 給定文法a ba ca,為該文法句子的是 bca 3 設有文法g s s s1 s0 sa sc a b c,下列符號串中是該文法的句子有 bc10 4 文法g產生的 句子 的全體是該文法描述的語言。5 若文法g定義的語言是無限集,...
Hao語言 文法
新型漢語程式語言 設計開發中.源 公開,希望有能力的朋友多提意見 identifier a z a z a 128 identifier identifier identifier 0 9 sentence variablestatementsentence expressionsentence v...