#format inline_latex 定义:上下文无关文法G是一个四元组$(V, \Sigma, R, S)$,其中 * V是一个字母表, * $\Sigma$是终结符集合,它是V的子集,($V-\Sigma$的成员叫做非终结符) * R是规则集合,它是$(V-\Sigma)\times V^*$的有穷子集, * $S\in V-\Sigma$是起始符。 对任意的$A\in V-\Sigma$和$u\in V^*$,当$(A,u)\in R$时记作$A\rightarrow_Gu$。对任意字符串$u,v\in V^*$,记$u\Rightarrow_Gv$当且仅当存在字符串$x,y\in V^*$和$A\in V-\Sigma$使得$u=xAy$,$v=xv'y$和$A\rightarrow_Gv'$。关系$\Rightarrow_G$是的自反传递闭包。 G生成的语言$L(G)$为$\lbrace \omega\in\Sigma^*:S\stackrel{*}{\Rightarrow}_G\omega \rbrace$ 如果$L=L(G)$,其中G是一个上下文无关文法,则称L是一个上下文无关语言。 形如$\omega_0\Rightarrow_G\omega_1\Rightarrow_G\omega_2\Rightarrow_G\cdots\Rightarrow_G\omega_n\Rightarrow_G$的序列称作$\omega_n$在G中从$\omega_0$开始的推导,这里$\omega_0,\cdots,\omega_n$可以是$V^*$中的任何字符串,推导的长度n是任何自然数,包括0在内。也说推导有n步。 语法分析树: 设$G=(V,\Sigma,R,S)$是一个上下文无关文法,$D=x_1\Rightarrow x_2\Rightarrow\cdots\Rightarrow x_n$和$D'=x'_1\Rightarrow x'_2\Rightarrow\cdots\Rightarrow x'_n$是G中的两个推导,其中$x_i,x'_i\in V^*$,$i=1,\cdots,n$且$x_1,x'_1\in V-\Sigma$,$x_n,x'_n\in \Sigma^*$。即D和D'都是从单个非终结符到终结符串的推导。如果n>2并且存在k,1