文法---是一个数学系统
一个形式数学系统可由下列基本成分来刻画:一组基本符号,一组形成规则,一组公理,一组推理规则。
 |
例4.1 |
|
文法G=(Vn,VT,P,S),其中Vn={S},VT={0,1},P={S→0S1,S→01}。这里,非终结符集中只含一个元素S;终结符集由两个元素0和1组成;有两条产生式;开始符号是S。
|
 |
例4.2 |
|
文法G=(Vn,VT,P,S)
其中Vn={标识符,字母,数字}VT={a,b,c,…,x,y,z,0,1,…,9}
P ={〈标识符〉→〈字母〉
〈标识符〉→〈标识符〉〈字母〉
〈标识符〉→〈标识符〉〈数字〉
〈字母〉→a
〈字母〉→b
…
〈字母〉→z
〈数字〉→0
〈数字〉→1
…
〈数字〉→9}
S =〈标识符〉
这里,使用尖括号"〈"和"〉"括起非终结符。 |
很多时候,不用将文法G的四元组显式地表示出来,而只将产生式写出。一般约定,第一条产生式的左部是识别符号;用尖括号括起来的是非终结符号,不用尖括号括起来的是终结符号,或者用大写字母表示非终结符号,小写字母表示终结符号。另外也有一种习惯写法,将G写成G[S],其中S是识别符号,例4.1还可以写成:
G:S→0S1
S→01
或G[S]:S→0S1
S→01
有时,为书写简洁,常把相同左部的产生式,形如
A→α1
A→α2
…
A→αn
缩写为:
A→α1|α2|…|αn
这里的元符号"|"读做"或"。
一个文法的几种写法
① G=({S,A},{a,b},P,S)
其中P:S→aAb
A→ab
A→aAb
A→ε
② G:S→aAb
A→ab
A→aAb
A→ε
③ G[S]: A→ab A→aAb A→ε S →aAb
④ G[S]: A→ab |aAb |ε S→aAb |