1.
字母表與符號串
2.連線(乘積)運算:串集間的乘積;串集的方冪:串集的自身乘積
例如:a=;b=
則ab=
1)a^0=
2)字母表a的
n次方冪是字母表
a上所有長度為
n的串集。
3.字母表的閉包與正閉包
1)字母表a
的閉包(a*
) 2)
字母表a
的正閉包(a*
),除了空串的所有次方冪和
4.文法:文法是描述語言的語法結構的形式規則
1)非終結符:出現在規則左部、用<>
括起來、表示一定語法規則的詞,用
vn表示
2)終結符:語言中不可再分割的字串。終結符是組成句子的基本單位。用vt表示
3)開始符號:表示所定義的語法範疇的非終結符,又叫識別符號
4)產生式:形式a->
5)推導:從開始符號開始,通過使用產生式的右部取代左部,最終能產生語言的乙個句子的過程。最左推導和最右推導成為規範推導。
6)規約:推導的逆過程,從源語言的句子開始,通過規則的左部取代右部,最終達到識別符號的過程。——最左(右)規約是最右(左)推導的逆過程。
7)句型、句子和語言:——句型:從文法的識別符號,每步推導(包括0
步推導)得到的字串阿爾法。——句子:是僅含終結符的句型。——語言:語言是由
s開始通過1步或
1步以上推導所得句子的集合。記為:
l(g)
8)文法規則遞迴定義。
9)文法規則的擴充表示——擴充的bnf
表示。——()提因子。——
{}重複次數的指定。——
任選符號。
10)元語言符號:用來說明文法符號之間關係的符號。如->、|
。5.文法與語言的形式定義。
1)chomsky對文法的定義:從形式上說文法
g是乙個四元式(vn
,vt,p,
s)2)根據對文法產生式的限制分為四類。0.1.2.3
型文法。
3)0型文法,產生式的左邊至少有乙個符號,且至少有乙個非終結符。——識別
0型語言的自動機成為圖靈機(
tm)。——
0型文法是對產生式限制最少的文法。——任何
0型都是遞迴可列舉的。
4)1型文法——
p中產生式除了開始符號可以產生空串,其他規則右部的長度一定大於等於左部;如果開始符號產生空串,開始符號就不能出現在產生式右部。
或者,規則中,除可能有開是符號產生空串外,都有
aab->ayb,
其中a,b
屬於閉包,
a屬於非終結符,
y屬於正閉包。
5)—識別的自動機是線性界限自動機
——其實1
型文法是個長度增加文法,只能不變或增不能減。
6)2型文法:產生式左部一定是非終結符,產生式右邊可以是任意符號,包括空串;非終結符的替換不必靠了上下文。——識別
2型語言的自動機稱為下推自動機(
pda);
2型文法也稱上下文無關文法。
7)3型文法——規則中產生式的左邊是乙個非終結符,右邊是終結符
| ab
,或者a->ba
,a->a,a
屬於終結符閉包。——
3型文法的產生式要麼全是右線性產生式,要麼是左線性產生式,不能即是左右時右。——
3型文法也稱為正規文法
rg——識別
3型語言的自動機稱為有限狀態自動機。
8)詞法分析和語法分析中對產生式的限制——不存在p->p
。——非終結一定能夠轉換為終結符。
文法的構造與簡化:
1.由於同一語言可以用不同的文法來描述,顯然應當選擇產生式的個數最少,最符合語言特徵的來描述。
2.在文法中,有些產生式對推導不起作用,要刪除掉。
3.簡化步驟:1
)查詢有無形如p-〉
p的產生式,有就刪除。
2)若某個產生式在推到中永遠不會被用到,就刪掉。
3)不能推導出終結符的,刪除它。
4)整理剩餘產生式就得到了簡化的文法。
4.構造無空串產生式的上下文無關文法。規則中要麼不出現空串產生式,要麼只有開始符號有空串產生式。——如果開始符號能推出空串,則開始符號不出現在任何產生式右部。
語法樹與文法的二義性
1.定義:用來表示語言句子結構的樹
2.作用:使用語法樹可以使語法分析過程直觀、形象,易於判斷文法二義性。
3.語法樹中的概念:1
)子樹:所有的非葉子結點連同它的所有子孫結點構成子樹。
2)修剪子樹:減去子樹樹根的所有孩子。
3)句型:在一棵語法樹生長過程中的任何時刻,所有那些葉子結點排列起來就是乙個句型。
4)短語:如果z=〉
xuy,且u=〉
+ u,則稱
u是句型
w中相對於
u的短語。簡單短語:若短語是某一子樹根經過
1步推導得到的,則稱之為該字數根的簡單短語。
5)控制代碼:句型中的最左簡單短語。注:控制代碼是最左歸約時要尋找的簡單短語。
4.句子二義性:如果文法的乙個句子存在對應的兩顆或兩棵以上的語法樹,則稱句子是二義的。
編譯原理01 文法
文法編譯就是高階語言翻譯成低階語言的過程,翻譯完全部 後執行。解釋也是翻譯的過程,但和編譯不同,解釋時逐句翻譯,一邊解釋一邊執行。程式語言是乙個記號系統。可以看作是一定字符集 字母表 上的字串,包括語法和語義兩部分。文法是描述語言的語法結構的形式規則。young men like pop music...
編譯原理 學習筆記(二) 文法和語言
一 對程式語言的描述從語法 語義和語用三個因素考慮 a 語法 對語言結構的定義 b 語義 語言的含義 c 語用 從使用的角度描述語言。形式語言理論是編譯的理論基礎。二 字母表 元素的非空有窮集合 符號 字元 字母表中的元素 符號串 符號的有窮序列。三 符號串運算 a 符號串的連線 x x x b 集...
編譯原理 學習筆記(二) 文法和語言
一 對程式語言的描述從語法 語義和語用三個因素考慮 a 語法 對語言結構的定義 b 語義 語言的含義 c 語用 從使用的角度描述語言。形式語言理論是編譯的理論基礎。二 字母表 元素的非空有窮集合 符號 字元 字母表中的元素 符號串 符號的有窮序列。三 符號串運算 a 符號串的連線 x x x b 集...