例如:
S→aSb
S→x
此时如令
S→(S)
S→x
则可生成
x,(x),((x)),(((x))),((((x)))),……
此为正则语法无法解决的嵌套结构。
巴科斯-诺尔范式(BNF,Backus-Naur Form),
BNF常用来表达上下文无关语法。其表达方式为:
"::="代替"→"
"|"表示多条产生式有相同的左侧。称作选择项。
"<>"表示非终结符
如:<S>::=(<S>)| x
表达句子的推导:把推导表示为产生式应用的一个线性序。
<SENTENCE>::=<SUBJECT><VERBPHARSE>
<SUBJEVT>::= John | Mary
<VERBPHRASE>::=<VERB> <OBJECT>
<VERB>::= eats | drinks
<OBJECT>::= wine | cheese
句子Mary eats cheese的推导可表示为:
<SENTENCE>
<SUBJECT><VERBPHRASE>
Mary<VERBPHRASE>
Mary<VERB><OBJECT>
Mary eats <OBJECT>
Mary eats cheese.
|