7回目:形式文法

✩
✬
7回目:形式文法
• 形式文法:FG (Formal Grammar)–I
• 形式文法:FG (Formal Grammar)–II
• 正則文法:RG (Regular Grammar)–I
• 正則文法:RG (Regular Grammar)–II
• 正則文法から有限オートマトンへの変換
• 有限オートマトンから正則文法への変換
http://www.cit.ics.saitama-u.ac.jp/~far/Lectures/Automaton/07kaime
✫
オートマトンと形式言語 –1
✪
✩
✬
形式文法 –I
形式文法
: FG (Formal Grammar)
• 形式文法はあるオートマトンの受理する言語の内特定な言語だけ
を生成するシステムである.
• 特定な言語を生成するために開始記号 (初期記号) (initial
symbol), 終端記号 (terminal symbol), 非終端記号 (nonterminal
symbol), 生成規則 (production or rewriting rules) が必要である.
• 形式文法は, 生成規則の型に従って,
– 正則文法 RG (Regular Grammar)
– 文脈自動文法 CFG (Context Free Grammar)
– 文脈依存文法 CSL (Context Sensitive Language)
などに分類される.
✫
オートマトンと形式言語 –2
✪
✩
✬
形式文法 –II
形式文法の定義:
G
=
{N,
N
:
非終端記号 (nonterminal symbol)
Σ
:
終端記号 (terminal symbol)
Σ,
P,
S}
N ∩Σ=φ
P
:
生成規則 (production)
S
:
開始記号 (initial symbol)
S∈N
✫
オートマトンと形式言語 –3
✪
✩
✬
正則文法:RG (Regular Grammar)
正則文法 (正規文法)
G
=
{N,
A, B ∈ N ;
a∈Σ;
: 3型文法 (Type 3 Grammar)
Σ,
P,
S}
(非終端記号)
(終端記号)
P の要素は以下の形式となっている:
P
✫
=
{ S → ,
A → aB,
オートマトンと形式言語 –4
A→a}
✪
✩
✬
正則文法:導出概念
導出概念 (Derive):
ある終端記号列 x (x ∈ Σ∗ ) と非終端記号 A から成る記号列 xA に対
し, 正則文法 G が A −→ aB (A, B ∈ N ; a ∈ Σ) なる生成規則を
持つとき, この生成規則により xA は xaB を 直接に導出するという.
✫
x ∈ Σ∗
A∈N
xA
xaB
−→
G
A → aB
x1 A1
−→
x2 A2 , x2 A2
xn An
−→
xn+1 An+1
x1 A1
=⇒
xn+1 An+1
G
G
G
−→
G
x3 A3 , . . . ,
オートマトンと形式言語 –5
✪
✩
✬
正則文法:文形式と文
• 開始記号 S から記号列 xA が導出されたとき, 記号列 xA が文形
式 (sentential form) である.
S
=⇒
G
xA
• 文形式 w が非終端記号を1個もふくまないとき, このような文形
式を 文 (sentence) という.
S
=⇒
G
w
(w ∈ Σ∗ )
• 文法 G が生成する文全体を L(G) で表し, G の生成する言語
(language generated (by G)) という.
L(G)
✫
=
{w ∈ Σ∗ | s =⇒ w}
G
オートマトンと形式言語 –6
✪
✩
✬
正則文法から有限オートマトンへの変換
G
=
{N,
Σ,
P,
M
=
{Q,
Σ,
δ,
S}
q0 ,
F}
与えられた 文法 G から -動作をもつ非決定性有限オートマトン M を以下
のように生成する。
1. 状態集合
Q = N ∪ {qf }
2. 初期状態
q0 = S
3. 最終状態
F = {qf }
4. 状態推移関数
P
=
{A → aB | A → aB ∈ P ; A, B ∈ N, a ∈ Σ}
∪{A → aqf
δ(A, a)
✫
=
(qf ∈ N )
| A → a ∈ P ; A ∈ N, a ∈ Σ ∪ {}}
{ B ∈ Q | A → aB ∈ P
オートマトンと形式言語 –7
; B ∈ N ∪ {qf } }
✪
✩
✬
有限オートマトンから正則文法への変換
M
=
{Q,
Σ,
δ,
G
=
{N,
Σ,
P,
q0 ,
F}
(Q ∩ Σ = φ)
S}
与えられた決定性有限オートマトン M から正則文法 G を以下のように生成
する。
1. 非終端記号集合
N =Q
2. 初期状態
S = q0
3. 最終状態
F = {qf }
4. 生成規則集合
P0
=
{A → aB | δ(A, a) = B}
∪{A → a | δ(A, a) = B, and B ∈ F }
✫
オートマトンと形式言語 –8
✪