前置知识(你可能不知道但等会会出现):
2、为正闭包,为克林闭包。
设为一个字母表,则它的正闭包为,它的克林闭包为
文法G(grammar)是一个四元组G=(V,T,P,S),也有一种写法是G=(,,P,S),两者是相同的。文法又叫语法。
V:变量(variable)的非空有穷集。,称A为一个语法变量(syntactic variable),简称变量,也叫非终结符号,也叫语法范畴。它表示一个集合。
T:终结符(terminal)的非空有穷集。,称a为终结符。有∅。
P:产生式(production)的非空有穷集。P中的元素均具有形式,称它为产生式,又叫定义式(definition form)或者语法规则(syntax rule),读作定义为,为产生式的左部,为产生式的右部。其中(正闭包),且中至少有V中元素之一出现;(克林闭包)。
S:,为文法G的开始符号(start),说明文法是由哪个字符开始的。
1、对一组具有相同左部的产生式:,…,可以简单的记为,读作定义为,或者…或者,称它们为产生式。,…称为候选式。
2、一般按照如下方式使用符号:
(1)英文字母表中较前面的大写字母,如A,B,C…表示语法变量。
(2)英文字母表中较前面的小写字母,如a,b,c…表示终结符号。
(3)英文字母表中较后面的大写字母,如X,Y,Z…表示该符号是语法变量或终结符号。
(4)英文字母表中较后面的小写字母,如x,y,z…表示由终结符号组成的行。
(5)希腊字母,,…表示由语法变量和终结符号组成的行。
以下四元组都是文法。
1、G=({A},{0,1},{A→01,A→0A1,A→1A0},A),则V={A},T={0,1},P={A→01,A→0A1,A→1A0},S={A}
2、G=({A,B},{0,1},{A→01,A→0A1,A→1A0,B→AB,B→0},A),则V={A,B},T={0,1},P={A→01,A→0A1,A→1A0,B→AB,B→0},S={A}