文法是一种数学模型,用于描述语言的结构和语法规则。其中,G(Grammar)用于描述一个形式语言的组成规则。G通常由四元组构成:$G=(N, \Sigma, P, S)$,其中$N$是非终止符号集合,$\Sigma$是终止符号集合,$P$是产生式规则集合,$S$是起始符号。
非终止符号集合$N$。非终止符号是指在语言中有可能被扩展、代替的符号。非终止符号是语言中的变量,通常用大写字母表示。在上下文无歧义的情况下,$N$中的每个符号有唯一的含义。例如,在上下文无歧义的情况下,$N=\{E,T,F\}$ 就表示一个表达式可以被分解为若干个项的和,其中每个项又可以被分解为因子的积。
终止符号集合$\Sigma$。终止符号是指不可以被扩展或者替换的符号,通常用小写字母、数字、标点符号等表示。终止符号是语言中的保留字或者关键字,或者是常见的单词和标点符号。例如,$\Sigma=\{+,-,*,/,0,1,2,3,4,5,6,7,8,9\}$就是一个数学表达式中可以出现的终止符号集合。
产生式规则集合$P$。产生式规则是指非终止符号如何扩展成一串符号的规则。产生式通常写成“左边 -> 右边”的形式。例如,对于数学表达式的文法,可以定义以下产生式规则:
$E\to E+T$
$E\to E-T$
$E\to T$
$T\to T*F$
$T\to T/F$
$T\to F$
$F\to (E)$
$F\to id$
其中,$id$是表示一个数字或者变量名称的标识符。上述产生式规则定义了数学表达式的各种语法规则,如何将一个表达式分解成多个项的加减法、如何将一个项分解成多个因子的乘除法、如何使用括号表示一个表达式或者单独的数字或者标识符。
起始符号$S$。起始符号是指最终生成语言中的语法树的根节点的符号。在一个文法中,只能有一个起始符号。通常,将起始符号设为文法中的第一个非终止符号。对于上述数学表达式的文法,起始符号为$E$。
总之,文法G是一种用于描述形式语言结构和语法规则的数学模型。G通常由四元组构成,其中$N$是非终止符号集合,$\Sigma$是终止符号集合,$P$是产生式规则集合,$S$是起始符号。通过对G的定义和使用,可以方便地描述和分析各种形式语言和相关的语法规则。
扫码领取最新备考资料