【形式语言与自动机】【《形式语言与自动机理论(第4版)》笔记】第二章:文法

2.1|启示


2.2|形式定义

文法
  • 文法 G G G是一个四元组: G = ( V , T , P , S ) G = (V , T , P , S) G=(V,T,P,S)

    • V V V——变量的非空有穷集, ∀ A ∈ V \forall A \in V AV A A A称为语法变量,简称变量,也称为非终极符号,它表示一个语法范畴,记作 L ( A ) L(A) L(A)

    • T T T——终极符的非空有穷集, ∀ a ∈ T \forall a \in T aT a a a称为终极符,由于 V V V中符号表示语法范畴, T T T中的符号是语言的句子中出现的字符,所以有 V ∩ T = ∅ V \cap T = \emptyset VT=

    • P P P——产生式的非空有穷集合, P P P中的元素均具有形式 α → β \alpha \rightarrow \beta αβ,称为产生式,读作 α \alpha α定义为 β \beta β,其中 α ∈ ( V ∪ T ) + \alpha \in (V \cup T)^{+} α(VT)+,且 α \alpha α中至少有 V V V中的一个元素出现, β ∈ ( V ∪ T ) ∗ \beta \in (V \cup T)^{*} β(VT) α \alpha α称为产生式 α → β \alpha \rightarrow \beta αβ的左部, β \beta β称为产生式 α → β \alpha \rightarrow \beta αβ的右部,产生式又称为定义式或者语法规则

    • S S S—— S ∈ V S \in V SV,文法 G G G的开始符号

产生式
  • 对一组有相同左部的产生式: α → β 1 \alpha \rightarrow \beta_{1} αβ1 α → β 2 \alpha \rightarrow \beta_{2} αβ2 ⋯ \cdots α → β n \alpha \rightarrow \beta_{n} αβn可以简单地记为 α → β 1 ∣ β 2 ∣ ⋯ ∣ β n \alpha \rightarrow \beta_{1} \mid \beta_{2} \mid \cdots \mid \beta_{n} αβ1β2βn,其中 β 1 \beta_{1} β1 β 2 \beta_{2} β2 ⋯ \cdots β n \beta_{n} βn称为候选式

  • 文法中所有定义 α \alpha α的产生式为 α \alpha α产生式

推导
  • G = ( V , T , P , S ) G = (V , T , P , S) G=(V,T,P,S)是一个文法,如果 α → β ∈ P \alpha \rightarrow \beta \in P αβP γ \gamma γ δ ∈ ( V ∪ T ) ∗ \delta \in (V \cup T)^{*} δ(VT),则称 γ α δ \gamma \alpha \delta γαδ G G G中直接推导出 γ β δ \gamma \beta \delta γβδ,记作 γ α δ ⇒ G γ β δ \gamma \alpha \delta \xRightarrow[G]{} \gamma \beta \delta γαδ Gγβδ,读作 γ α β \gamma \alpha \beta γαβ在文法 G G G中直接推导出 γ β δ \gamma \beta \delta γβδ,称 γ β δ \gamma \beta \delta γβδ在文法 G G G中直接归约成 γ α δ \gamma \alpha \delta γαδ

  • 推导也称为派生

  • ⇒ G \xRightarrow[G]{} G ( V ∪ T ) ∗ (V \cup T)^{*} (VT)上的二元关系,用 ⇒ G + \xRightarrow[G]{+} + G代表 ( ⇒ G ) + (\xRightarrow[G]{})^{+} ( G)+,用 ⇒ G ∗ \xRightarrow[G]{*} G代表 ( ⇒ G ) ∗ (\xRightarrow[G]{})^{*} ( G),用 ⇒ G n \xRightarrow[G]{n} n G代表 ( ⇒ G ) n (\xRightarrow[G]{})^{n} ( G)n

    • α ⇒ G n β \alpha \xRightarrow[G]{n} \beta αn Gβ表示 α \alpha α G G G中经过 n n n步推导出 β \beta β β \beta β G G G中经过 n n n步归约于 α \alpha α,即存在 α 1 \alpha_{1} α1 α 2 \alpha_{2} α2 ⋯ \cdots α n − 1 ∈ ( V ∪ T ) ∗ \alpha_{n - 1} \in (V \cup T)^{*} αn1(VT),使得 α ⇒ G α 1 \alpha \xRightarrow[G]{} \alpha_{1} α Gα1 α 1 ⇒ G α 2 \alpha_{1} \xRightarrow[G]{} \alpha_{2} α1 Gα2 ⋯ \cdots α n − 1 ⇒ G β \alpha_{n - 1} \xRightarrow[G]{} \beta αn1 Gβ
    • n = 0 n = 0 n=0时,有 α = β \alpha = \beta α=β,即 α ⇒ G 0 β \alpha \xRightarrow[G]{0} \beta α0 Gβ
语法范畴
  • G = ( {   S , A , B   } , {   0 , 1   } , {   S → A ∣ A B , A → 0 ∣ 0 A , B → 1 ∣ 11   } , S ) G = (\set{S , A , B} , \set{0 , 1} , \set{S \rightarrow A \mid AB , A \rightarrow 0 \mid 0A , B \rightarrow 1 \mid 11} , S) G=({S,A,B},{0,1},{SAAB,A00A,B111},S),则有如下一些推导

    • 对于 n ≥ 1 n \geq 1 n1 A ⇒ n 0 n A \xRightarrow{n} 0^{n} An 0n A ⇒ n 0 n A A \xRightarrow{n} 0^{n} A An 0nA

    • B ⇒ 1 B \Rightarrow 1 B1 B ⇒ 11 B \Rightarrow 11 B11

    • 语法范畴 A A A代表的集合 L ( A ) L(A) L(A) {   0 , 00 , 000 , ⋯   } = {   0 n ∣ n ≥ 1   } \set{0 , 00 , 000 , \cdots} = \set{0^{n} \mid n \geq 1} {0,00,000,}={0nn1}

    • 语法范畴 B B B代表的集合 L ( B ) L(B) L(B) {   1 , 11   } \set{1 , 11} {1,11}

    • 语法范畴 S S S代表的集合为 L ( S ) = L ( A ) ∪ L ( A ) L ( B ) = {   0 , 00 , 000 , ⋯   } ∪ {   0 , 00 , 000 , ⋯   } {   1 , 11   } = {   0 , 00 , 000 , ⋯   } ∪ {   01 , 001 , 0001 , ⋯   } ∪ {   011 , 0011 , 00011 , ⋯   } L(S) = L(A) \cup L(A) L(B) = \set{0 , 00 , 000 , \cdots} \cup \set{0 , 00 , 000 , \cdots} \set{1 , 11} = \set{0 , 00 , 000 , \cdots} \cup \set{01 , 001 , 0001 , \cdots} \cup \set{011 , 0011 , 00011 , \cdots} L(S)=L(A)L(A)L(B)={0,00,000,}{0,00,000,}{1,11}={0,00,000,}{01,001,0001,}{011,0011,00011,}

文法产生的语言
  • 设文法 G = ( V , T , P , S ) G = (V , T , P , S) G=(V,T,P,S),则称 L ( G ) = {   w ∣ w ∈ T ∗ 且 S ⇒ ∗ w   } L(G) = \set{w \mid w \in T^{*} 且 S \xRightarrow{*} w} L(G)={wwTS w}为文法 G G G产生的语言

  • 对于任意一个文法 G G G G G G产生的语言 L ( G ) L(G) L(G)就是该文法的开始符号 S S S对应的语法范畴 L ( S ) L(S) L(S)

句子
  • ∀ w ∈ L ( G ) \forall w \in L(G) wL(G) w w w称为 G G G的一个句子
句型
  • 设文法 G = ( V , T , P , S ) G = (V , T , P , S) G=(V,T,P,S),对于 ∀ α ∈ ( V ∪ T ) ∗ \forall \alpha \in (V \cup T)^{*} α(VT),如果 S ⇒ ∗ α S \xRightarrow{*} \alpha S α,则称 α \alpha α G G G产生的一个句型

2.3|文法的构造

文法的等价
  • 设有两个文法 G 1 G_{1} G1 G 2 G_{2} G2,如果 L ( G 1 ) = L ( G 2 ) L(G_{1}) = L(G_{2}) L(G1)=L(G2),则称 G 1 G_{1} G1 G 2 G_{2} G2等价
文法的表示
  • 如果约定所列的第一个产生式的左部就是该文法的开始符号,则对于一个文法,只用列出它的所有产生式
文法的构造
  • 构造文法 G G G,使得 L ( G ) = {   ω ∣ ω ∈ {   0 , 1   } +   } L(G) = \set{\omega \mid \omega \in \set{0 , 1}^{+}} L(G)={ωω{0,1}+}

    • S → 0 ∣ 1 ∣ 0 S ∣ 1 S S \rightarrow 0 \mid 1 \mid 0S \mid 1S S010S1S
  • 构造文法 G G G,使得 L ( G ) = {   ω ω T ∣ ω ∈ {   0 , 1 , 2 , 3   } +   } L(G) = \set{\omega \omega^{T} \mid \omega \in \set{0 , 1 , 2 , 3}^{+}} L(G)={ωωTω{0,1,2,3}+}

    • S → 00 ∣ 11 ∣ 22 ∣ 33 ∣ 0 S 0 ∣ 1 S 1 ∣ 2 S 2 ∣ 3 S 3 S \rightarrow 00 \mid 11 \mid 22 \mid 33 \mid 0S0 \mid 1S1 \mid 2S2 \mid 3S3 S001122330S01S12S23S3
  • 构造文法 G G G,使得 L ( G ) = {   a n b n c n ∣ n ≥ 1   } L(G) = \set{a^{n} b^{n} c^{n} \mid n \geq 1} L(G)={anbncnn1}

S → a B C ∣ a S B C C B → B C a B → a b b B → b b b C → b c c C → c c S \rightarrow aBC \mid aSBC \\ CB \rightarrow BC \\ aB \rightarrow ab \\ bB \rightarrow bb \\ bC \rightarrow bc \\ cC \rightarrow cc SaBCaSBCCBBCaBabbBbbbCbccCcc

S → a b c ∣ a S B c b B → b b c B → B c S \rightarrow abc \mid aSBc \\ bB \rightarrow bb \\ cB \rightarrow Bc SabcaSBcbBbbcBBc


2.4|文法的乔姆斯基体系

文法
0 0 0型文法
  • 设文法 G = ( V , T , P , S ) G = (V , T , P , S) G=(V,T,P,S),则 G G G叫做 0 0 0型文法或短语结构文法, L ( G ) L(G) L(G)叫做 0 0 0型语言、短语结构语言( P S L PSL PSL)或递归可枚举集
1 1 1型文法
  • 设文法 G = ( V , T , P , S ) G = (V , T , P , S) G=(V,T,P,S),如果对于 ∀ α → β ∈ P \forall \alpha \rightarrow \beta \in P αβP,均有 ∣ β ∣ ≥ ∣ α ∣ |\beta| \geq |\alpha| βα成立,则称 G G G 1 1 1型文法或上下文有关文法, L ( G ) L(G) L(G)叫做 1 1 1型语言或上下文有关语言( C S L CSL CSL
2 2 2型文法
  • 设文法 G = ( V , T , P , S ) G = (V , T , P , S) G=(V,T,P,S),如果对于 ∀ α → β ∈ P \forall \alpha \rightarrow \beta \in P αβP,均有 ∣ β ∣ ≥ ∣ α ∣ |\beta| \geq |\alpha| βα,并且 α ∈ V \alpha \in V αV成立,则称 G G G 2 2 2型文法或上下文无关文法, L ( G ) L(G) L(G)叫做 2 2 2型语言或上下文无关语言( C F L CFL CFL
3 3 3型文法
  • 设文法 G = ( V , T , P , S ) G = (V , T , P , S) G=(V,T,P,S),如果对于 ∀ α → β ∈ P \forall \alpha \rightarrow \beta \in P αβP α → β \alpha \rightarrow \beta αβ均具有形式 A → w A \rightarrow w Aw A → w B A \rightarrow wB AwB A A A B ∈ V B \in V BV w ∈ T + w \in T^{+} wT+,则称 G G G 3 3 3型文法、正则文法或正规文法, L ( G ) L(G) L(G)叫做 3 3 3型语言、正则语言或正规语言( R L RL RL
L L L R L RL RL的充要条件
  • L L L R L RL RL的充要条件是存在一个文法,该文法产生语言 L L L,并且它的产生式要么是形如 A → a A \rightarrow a Aa的产生式,要么是形如 A → a B A \rightarrow aB AaB的产生式,其中 A A A B B B为语法变量, a a a为终极符号
证明
充分性
  • 设有 G ′ G^{'} G L ( G ′ ) = L L(G^{'}) = L L(G)=L,且 G ′ G^{'} G的产生式形式满足定理要求,这种文法是 R G RG RG,所以, G ′ G^{'} G产生的语言是 R L RL RL
必要性
  • 构造文法 G ′ G^{'} G

    • L L L R L RL RL,存在有 R G   G RG \ G RG G,该文法产生 L L L,设 G = ( V , T , P , S ) G = (V , T , P , S) G=(V,T,P,S) P P P中的产生式要么是形如 A → w A \rightarrow w Aw的,要么是形如 A → w B A \rightarrow wB AwB的,设 w = a 1 a 2 ⋯ a n , n ≥ 1 w = a_{1} a_{2} \cdots a_{n} , n \geq 1 w=a1a2an,n1

    • 对于 P P P中的每一个产生式,如果该产生式形如 A → a 1 a 2 ⋯ a n A \rightarrow a_{1} a_{2} \cdots a_{n} Aa1a2an,则将 A → a 1 A 1 A \rightarrow a_{1} A_{1} Aa1A1 A 1 → a 2 A 2 A_{1} \rightarrow a_{2} A_{2} A1a2A2 ⋯ \cdots A n − 1 → a n A_{n - 1} \rightarrow a_{n} An1an放入产生式集 P ′ P^{'} P

    • 如果该产生式形如 A → a 1 a 2 ⋯ a n B A \rightarrow a_{1} a_{2} \cdots a_{n} B Aa1a2anB,则将 A → a 1 A 1 A \rightarrow a_{1} A_{1} Aa1A1 A 1 → a 2 A 2 A_{1} \rightarrow a_{2} A_{2} A1a2A2 ⋯ \cdots A n − 1 → a n B A_{n - 1} \rightarrow a_{n} B An1anB放入产生式集 P ′ P^{'} P

    • V ′ V^{'} V是由 P ′ P^{'} P中所有产生式中的语法变量构成的集合, G ′ = ( V ′ , T , P ′ , S ) G^{'} = (V^{'} , T , P^{'} , S) G=(V,T,P,S)

  • 证明 L ( G ′ ) = L ( G ) L(G^{'}) = L(G) L(G)=L(G)

    • 需证明 ∀ x ∈ T ∗ , x ∈ L ( G ′ ) ⇔ x ∈ L ( G ) \forall x \in T^{*} , x \in L(G^{'}) \Leftrightarrow x \in L(G) xT,xL(G)xL(G)

    • 首先证明如果 A ⇒ G n x A \xRightarrow[G]{n} x An Gx,则 A ⇒ G ′ m x A \xRightarrow[G^{'}]{m} x Am Gx

      • n = 1 n = 1 n=1时,必有 A → x ∈ P A \rightarrow x \in P AxP,设 x = a 1 a 2 ⋯ a h x = a_{1} a_{2} \cdots a_{h} x=a1a2ah,在 P ′ P^{'} P中有 A ⇒ G ′ a 1 A 1 ⇒ G ′ a 1 a 2 A 2 ⇒ G ′ ⋯ ⇒ G ′ a 1 a 2 ⋯ a h A \xRightarrow[G^{'}]{} a_{1} A_{1} \xRightarrow[G^{'}]{} a_{1} a_{2} A_{2} \xRightarrow[G^{'}]{} \cdots \xRightarrow[G^{'}]{} a_{1} a_{2} \cdots a_{h} A Ga1A1 Ga1a2A2 G Ga1a2ah

      • 所以, n = 1 n = 1 n=1时结论成立

      • n = k n = k n=k时结论成立,往证 n = k + 1 n = k + 1 n=k+1时结论成立

      • n = k + 1 n = k + 1 n=k+1 x = x 1 x 2 x = x_{1} x_{2} x=x1x2,有 A ⇒ G x 1 B ⇒ G k x 1 x 2 A \xRightarrow[G]{} x_{1} B \xRightarrow[G]{k} x_{1} x_{2} A Gx1Bk Gx1x2 B ⇒ G k x 2 B \xRightarrow[G]{k} x_{2} Bk Gx2,设 x 1 = a 1 a 2 ⋯ a h x_{1} = a_{1} a_{2} \cdots a_{h} x1=a1a2ah,则 A → a 1 a 2 ⋯ a h B ∈ P A \rightarrow a_{1} a_{2} \cdots a_{h} B \in P Aa1a2ahBP

      • P ′ P^{'} P中有 A ⇒ G ′ a 1 A 1 ⇒ G ′ a 1 a 2 A 2 ⇒ G ′ ⋯ ⇒ G ′ a 1 a 2 ⋯ a h B A \xRightarrow[G^{'}]{} a_{1} A_{1} \xRightarrow[G^{'}]{} a_{1} a_{2} A_{2} \xRightarrow[G^{'}]{} \cdots \xRightarrow[G^{'}]{} a_{1} a_{2} \cdots a_{h} B A Ga1A1 Ga1a2A2 G Ga1a2ahB,由归纳假设,存在 m m m,使得 B ⇒ G ′ m x 2 B \xRightarrow[G^{'}]{m} x_{2} Bm Gx2,所以 A ⇒ G ′ a 1 A 1 ⇒ G ′ a 1 a 2 A 2 ⇒ G ′ ⋯ ⇒ G ′ a 1 a 2 ⋯ a h B ⇒ G ′ m a 1 a 2 ⋯ a h x 2 A \xRightarrow[G^{'}]{} a_{1} A_{1} \xRightarrow[G^{'}]{} a_{1} a_{2} A_{2} \xRightarrow[G^{'}]{} \cdots \xRightarrow[G^{'}]{} a_{1} a_{2} \cdots a_{h} B \xRightarrow[G^{'}]{m} a_{1} a_{2} \cdots a_{h} x_{2} A Ga1A1 Ga1a2A2 G Ga1a2ahBm Ga1a2ahx2

      • 由归纳法原理,结论对 ∀ A ∈ V \forall A \in V AV成立

    • 再证明,如果 A ⇒ G ′ n x A \xRightarrow[G^{'}]{n} x An Gx,则 A ⇒ G m x A \xRightarrow[G]{m} x Am Gx

      • n = 1 n = 1 n=1时,必有 A → x ∈ P ′ A \rightarrow x \in P^{'} AxP,必有 A → x ∈ P A \rightarrow x \in P AxP,所以 A ⇒ G x A \xRightarrow[G]{} x A Gx,即结论对 n = 1 n = 1 n=1成立

      • 假设结论对 n < k n < k n<k成立

      • n = k ( k ≥ 2 ) n = k (k \geq 2) n=k(k2)时,必有 A ⇒ G ′ a 1 A 1 ⇒ G ′ a 1 a 2 A 2 ⇒ G ′ ⋯ ⇒ G ′ a 1 a 2 ⋯ a h A \xRightarrow[G^{'}]{} a_{1} A_{1} \xRightarrow[G^{'}]{} a_{1} a_{2} A_{2} \xRightarrow[G^{'}]{} \cdots \xRightarrow[G^{'}]{} a_{1} a_{2} \cdots a_{h} A Ga1A1 Ga1a2A2 G Ga1a2ah A ⇒ G ′ a 1 A 1 ⇒ G ′ a 1 a 2 A 2 ⇒ G ′ ⋯ ⇒ G ′ a 1 a 2 ⋯ a h B ⇒ G ′ m a 1 a 2 ⋯ a h x 2 A \xRightarrow[G^{'}]{} a_{1} A_{1} \xRightarrow[G^{'}]{} a_{1} a_{2} A_{2} \xRightarrow[G^{'}]{} \cdots \xRightarrow[G^{'}]{} a_{1} a_{2} \cdots a_{h} B \xRightarrow[G^{'}]{m} a_{1} a_{2} \cdots a_{h} x_{2} A Ga1A1 Ga1a2A2 G Ga1a2ahBm Ga1a2ahx2

        • 当第一种情况出现时, x = a 1 a 2 ⋯ a h x = a_{1} a_{2} \cdots a_{h} x=a1a2ah,有 A → a 1 a 2 ⋯ a h ∈ P A \rightarrow a_{1} a_{2} \cdots a_{h} \in P Aa1a2ahP,所以 A ⇒ G a 1 a 2 ⋯ a h A \xRightarrow[G]{} a_{1} a_{2} \cdots a_{h} A Ga1a2ah

        • 当第二种情况出现时, x = a 1 a 2 ⋯ a h x 2 x = a_{1} a_{2} \cdots a_{h} x_{2} x=a1a2ahx2,必有 A → a 1 a 2 ⋯ a h B ∈ P A \rightarrow a_{1} a_{2} \cdots a_{h} B \in P Aa1a2ahBP A ⇒ G a 1 a 2 ⋯ a h B A \xRightarrow[G]{} a_{1} a_{2} \cdots a_{h} B A Ga1a2ahB,且 B B B G ′ G^{'} G中用不足 k k k步推导出 x 2 x_{2} x2,由归纳假设,存在 m m m B B B G G G中经过 m m m步推导出 x 2 x_{2} x2,从而 A ⇒ G a 1 a 2 ⋯ a h B ⇒ G m a 1 a 2 ⋯ a h x 2 A \xRightarrow[G]{} a_{1} a_{2} \cdots a_{h} B \xRightarrow[G]{m} a_{1} a_{2} \cdots a_{h} x_{2} A Ga1a2ahBm Ga1a2ahx2

        • 所以,无论是第一种情况还是第二种情况,对 n = k n = k n=k结论都成立

      • 由归纳法原理,结论对 ∀ A ∈ V \forall A \in V AV成立

线性文法
  • G = ( V , T , P , S ) G = (V , T , P , S) G=(V,T,P,S),如果对于 ∀ α → β ∈ P \forall \alpha \rightarrow \beta \in P αβP α → β \alpha \rightarrow \beta αβ均具有 A → x A \rightarrow x Ax A → w B x A \rightarrow wBx AwBx形式,其中, A A A B ∈ V B \in V BV w w w x ∈ T ∗ x \in T^{*} xT,则称 G G G为线性文法, L ( G ) L(G) L(G)称为线性语言
右线性文法
  • G = ( V , T , P , S ) G = (V , T , P , S) G=(V,T,P,S),如果对于 ∀ α → β ∈ P \forall \alpha \rightarrow \beta \in P αβP α → β \alpha \rightarrow \beta αβ均具有 A → x A \rightarrow x Ax A → w B A \rightarrow wB AwB形式,其中, A A A B ∈ V B \in V BV w ∈ T + w \in T^{+} wT+,则称 G G G为右线性文法, L ( G ) L(G) L(G)称为右线性语言
左线性文法
  • G = ( V , T , P , S ) G = (V , T , P , S) G=(V,T,P,S),如果对于 ∀ α → β ∈ P \forall \alpha \rightarrow \beta \in P αβP α → β \alpha \rightarrow \beta αβ均具有 A → x A \rightarrow x Ax A → B w A \rightarrow Bw ABw形式,其中, A A A B ∈ V B \in V BV w ∈ T + w \in T^{+} wT+,则称 G G G为左线性文法, L ( G ) L(G) L(G)称为左线性语言
L L L是左线性语言的充要条件
  • L L L是左线性语言的充要条件是存在文法 G G G G G G中的产生式要么是形如 A → a A \rightarrow a Aa的产生式,要么是形如 A → B a A \rightarrow Ba ABa的产生式,且 L ( G ) = L L(G) = L L(G)=L,其中 A A A B B B为语法变量, a a a为终极符号
定理
  • 左线性文法与右线性文法等价
句子的分析过程
  • 在句子的分析过程中,右线性文法对应于句子的推导过程,左线性文法对应于句子的归约过程

2.5|空语句

空产生式
  • 形如 A → ε A \rightarrow \varepsilon Aε的产生式称为空产生式,也可称为 ε \varepsilon ε产生式
定理
  • G = ( V , T , P , S ) G = (V , T , P , S) G=(V,T,P,S)为一文法,则存在与 G G G同类型的文法 G ′ = ( V ′ , T , P ′ , S ′ ) G^{'} = (V^{'} , T , P^{'} , S^{'}) G=(V,T,P,S),使得 L ( G ) = L ( G ′ ) L(G) = L(G^{'}) L(G)=L(G),但 G ′ G^{'} G的开始符号 S ′ S^{'} S不出现在 G ′ G^{'} G的任何产生式的右部
证明
  • 当文法 G = ( V , T , P , S ) G = (V , T , P , S) G=(V,T,P,S)的开始符号 S S S不出现在 P P P中任何产生式的右部时, G G G就是所求
  • 否则,取 S ′ ∉ V S^{'} \notin V S/V G ′ = ( V ∪ {   S ′   } , T , P ′ , S ′ ) G^{'} = (V \cup \set{S^{'}} , T , P^{'} , S^{'}) G=(V{S},T,P,S) P ′ = P ∪ {   S ′ → α ∣ S → α ∈ P   } P^{'} = P \cup \set{S^{'} \rightarrow \alpha \mid S \rightarrow \alpha \in P} P=P{SαSαP},显然 G ′ G^{'} G G G G有相同的类型
证明 L ( G ′ ) ⊆ L ( G ) L(G^{'}) \subseteq L(G) L(G)L(G)
  • 对任意 x ∈ L ( G ′ ) x \in L(G^{'}) xL(G),在 G ′ G^{'} G中存在推导 S ′ ⇒ α ⇒ ∗ x S^{'} \Rightarrow \alpha \xRightarrow{*} x Sα x
  • P ′ P^{'} P的定义,有 S → α ∈ P S \rightarrow \alpha \in P SαP,所以 S ⇒ α ⇒ ∗ x S \Rightarrow \alpha \xRightarrow{*} x Sα x,故 x ∈ L ( G ) x \in L(G) xL(G)
证明 L ( G ) ⊆ L ( G ′ ) L(G) \subseteq L(G^{'}) L(G)L(G)
  • 对任意 x ∈ L ( G ) x \in L(G) xL(G),在 G G G中存在推导 S ⇒ α ⇒ ∗ x S \Rightarrow \alpha \xRightarrow{*} x Sα x
  • P ′ = P ∪ {   S ′ → α ∣ S → α ∈ P   } P^{'} = P \cup \set{S^{'} \rightarrow \alpha \mid S \rightarrow \alpha \in P} P=P{SαSαP},在 G ′ G^{'} G S ′ ⇒ α ⇒ ∗ x S^{'} \Rightarrow \alpha \xRightarrow{*} x Sα x,故 x ∈ L ( G ′ ) x \in L(G^{'}) xL(G)

  • 13
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值