文法和语言
1.文法G(Z):Z->aZb|ab定义的是什么样的语言?
答:Z→aZb→aaZbb→aaa...Z...b→aaa...ab...bbb
L(G[Z])={anbn|n≥1}
2.写出教材22页例2.2中标识符的文法四元组形式
答:设I为标识符;L为字母;D为数字。
则有VN={I,L,D},VT={a,b,c...x,y,z,0,1,2...9}
P={I→L
I→IL
I→ID
L→a
L→b
...
L→z
D→0
D→1
...
D→9}
S=<I>
3.写出下列表达式的最左推导、最右推导和语法树。
G(E):
E=> E + T | T
T=>T * F | F
F=>(E)| i
- i*i+i
- i+i*i
- i+(i+i)
注意观察最左和最右推导过程的不同,以及语法树的异同。
(1)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 => F*F+i => F*i+i => i*i+i
语法树:

(2)i+i*i
最左推导:E => E+T=> T+T => F+T => i+T => i+T*F => i+F*F => i+i*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
语法树:

(3)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)
语法树:


浙公网安备 33010602011771号