1.文法G(Z):Z->aZb|ab定義的是什麼樣的語言?blog
文法G有兩條產生式規則:語法
(1)Z->aZbim
(2)Z->abimg
經過對第一個產生式使用n-1次,而後使用第二個產生式一次,獲得Z->aZb->aaZbb->aaaZbbb->aaaZbbb->......an-1bn-1->anbn語言
2.寫出教材22頁例2.2中標識符的文法四元組形式。集合
設I爲標識符,L爲字母,D爲數字co
VN爲非空非終結符號,VT爲非空終結符號,P爲產生式集合,S爲開始符號數字
P = { I -> Lps
I -> ILab
I -> ID
......
L -> a
D -> 0
D -> 1
......
D -> 9 }
S = I
G:S ->L | IL | ID
L -> a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z
D -> 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
3.寫出下列表達式的最左推導、最右推導和語法樹。
G(E):
E=> E + T | T
T=>T * F | F
F=>(E)| i
i*i+i
i+i*i
i+(i+i)
注意觀察最左和最右推導過程的不一樣,以及語法樹的異同。
i*i+i
最左推導:
E => E+T => T+T => T*F+T => F*F+T => i*F+T => i*i+T => i*i+F => i*i+i
最右推導:
E => E+T => E+F => E+i => T+i =>T*F+i => T*i+i => F*i+i => i*i+i
語法樹:
i+i*i
最左推導:
E => E+T => T+T => F+T => i+T => i+T*F => i+F*F =>i+i*i
最右推導:
E => E+T =>E+T*F => E+T*i => E+F*i => E+i*i => T+i*i => F+i*i => i+i*i
語法樹:
i+(i+i)
最左推導:
E => E+T => T+T => F+T => i+T => i+F => i+(E) => i+(E+T) => i+(T+T) => i+(F+T) => i+(i+T) => i+(i+F) => i+(i+i)
最右推導:
E => E+T => E+F => E+(E) => E+(E+T) => E+(E+F) => E+(E+i) => E+(T+i) => E+(F+i) => E+(i+i) => T+(i+i) => F+(i+i) => i+(i+i)
語法樹: