語言及文法筆記

2021-10-06 07:33:51 字數 1644 閱讀 4128

由定義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...