システムソフトウェア 第3回:2007年10月17日(水)   . 2 本日学ぶこと 文法  文字と文字列  無限集合  文法とそのクラス  オートマトン.

Slides:



Advertisements
Similar presentations
プログラミング言語論 プログラミング言語の構 文 水野嘉明. 目次 1. プログラミング言語の構文 2. BNF 3. 文脈自由文法 4. 構文図式 2.
Advertisements

プログラミング言語論 第3回 BNF 記法について(演習付き) 篠埜 功. 構文の記述 プログラミング言語の構文はどのように定式化できるか? 例1 : for ループの中に for ループが書ける。 for (i=0; i
和田俊和 資料保存場所 /2/26 文法と言語 ー正規表現とオートマトンー 和田俊和 資料保存場所
プログラミング言語論 第10回(演習) 情報工学科 木村昌臣   篠埜 功.
文法と言語 ー字句解析とオートマトンlexー
コンパイラ 2011年10月17日
言語体系とコンピュータ 第6回.
データ構造と アルゴリズム 理工学部 情報システム工学科 新田直也.
5.チューリングマシンと計算.
5.チューリングマシンと計算.
文法と言語 ー文脈自由文法とLL構文解析ー
計算の理論 II 文脈自由文法と プッシュダウンオートマトン
データ構造と アルゴリズム 知能情報学部 新田直也.
言語処理系(5) 金子敬一.
言語プロセッサ ー第8回目ー.
コンパイラ 2012年10月15日
コンパイラ 2012年10月22日
東京工科大学 コンピュータサイエンス学部 亀田弘之
コンパイラ 2011年10月24日
東京工科大学 コンピュータサイエンス学部 亀田弘之
東京工科大学 コンピュータサイエンス学部 亀田弘之
第2章 「有限オートマトン」.
形式言語とオートマトン2013 ー有限オートマトンー 第5日目
プログラミング言語論 第3回 BNF記法について(演習付き)
東京工科大学 コンピュータサイエンス学部 亀田弘之
人工知能特論II 第2回 二宮 崇.
正則言語 2011/6/27.
文法と言語 ー字句解析とオートマトンlexー
東京工科大学 コンピュータサイエンス学部 亀田弘之
形式言語の理論 5. 文脈依存言語.
東京工科大学 コンピュータサイエンス学部 亀田弘之
東京工科大学 コンピュータサイエンス学部 亀田弘之
オートマトンとチューリング機械.
言語と文法 言語とは,ルールに従う記号列の無限集合である. 文法を与えることで言語が定義できる.
言語プロセッサ ー第9回目ー 構文解析(続き).
平成20年10月5日(月) 東京工科大学 コンピュータサイエンス学部 亀田弘之
計算の理論 I 文脈自由文法の標準形 月曜3校時 大月美佳.
計算の理論 II 前期の復習 -有限オートマトン-
計算の理論 I 正則表現とFAとの等価性 月曜3校時 大月 美佳 平成15年6月16日 佐賀大学知能情報システム学科.
東京工科大学 コンピュータサイエンス学部 亀田弘之
2007年度 情報数理学.
プログラミング言語論 第9回 情報工学科 木村昌臣 篠埜 功.
文法と言語 ー文脈自由文法とLL構文解析ー
コンパイラ 2011年10月20日
東京工科大学 コンピュータサイエンス学部 亀田弘之
平成26年4月22日(火) 東京工科大学 コンピュータサイエンス学部 亀田弘之
計算の理論 I 決定性有限オートマトン(DFA) と 非決定性有限オートマトン(NFA)
文法と言語 ー文脈自由文法とLR構文解析ー
計算の理論 I 非決定性有限オートマトン(NFA)
計算の理論 I -数学的概念と記法- 火曜 12:50~14:20 大月 美佳 2004年4月20日.
5.チューリングマシンと計算.
計算の理論 I -プッシュダウンオートマトン-
人工知能特論II 第8回 二宮 崇.
計算の理論 I プッシュダウンオートマトン 火曜3校時 大月 美佳 平成16年7月6日 佐賀大学知能情報システム学科.
東京工科大学 コンピュータサイエンス学部 亀田弘之
計算の理論 I -数学的概念と記法- 月曜3校時 大月 美佳.
形式言語とオートマトン 第14回 プッシュダウンオートマトンと全体のまとめ
文法と言語 ー字句解析とオートマトンlexー
情報処理Ⅱ 2006年11月24日(金).
4.プッシュダウンオートマトンと 文脈自由文法の等価性
情報処理Ⅱ 第7回 2004年11月16日(火).
東京工科大学 コンピュータサイエンス学部 亀田弘之
コンパイラ 2012年10月11日
言語プロセッサ ー第9回目ー 構文解析(続き).
東京工科大学 コンピュータサイエンス学部 亀田弘之
情報数理Ⅱ 第10章 オートマトン 平成28年12月21日.
情報処理Ⅱ 2005年11月25日(金).
計算の理論 I プッシュダウンオートマトン 月曜3校時 大月 美佳 平成15年7月7日 佐賀大学知能情報システム学科.
情報処理Ⅱ 小テスト 2005年2月1日(火).
東京工科大学 コンピュータサイエンス学部 亀田弘之
Presentation transcript:

システムソフトウェア 第3回:2007年10月17日(水)   

2 本日学ぶこと 文法  文字と文字列  無限集合  文法とそのクラス  オートマトン

3 文字 文字とは  文字列を作るもととなる記号のこと.  「 0,1 」や「 a, b, c, … 」などが用いられる. アルファベットとは  文字の集合.  空でない有限集合とする.  例 Σ={0, 1} Σ={a, b, c} すべての ASCII 記号の集合  この授業では,日常使われる意味の「アルファベット」は 忘れてください.

4 文字列 文字列とは  あるアルファベットから選ばれた文字の有限列  例 Σ={0, 1} のとき, 01101, 111, など Σ={a, b, c} のとき, cab, bba, ccccc など 文字列の長さとは  文字列が持つ文字の数(重複は別々に数える)  「文字列が持つ文字の位置の数」という定義もある.  |bba| = 3 のように,絶対値記号で長さを表す. 空文字列とは  0 個の文字からなる文字列のこと.  この授業では, ε と表記する. |ε| = 0 である.

5 文字列の集合 アルファベット Σ に対して  長さ 0 の文字列全体からなる集合は, Σ 0 = {ε}  長さ 1 の文字列全体からなる集合は, Σ 1 = Σ  長さ 2 の文字列全体からなる集合は, Σ 2 = {xy | x, y ∈ Σ}  長さ n の文字列全体からなる集合は, Σ n = {x 1 x 2 …x n | x 1, x 2, …, x n ∈ Σ}  任意の長さの文字列は, Σ * = Σ 0 ∪ Σ 1 ∪ … ∪ Σ n ∪ …  1 以上の長さの文字列は, Σ + = Σ 1 ∪ Σ 2 ∪ … ∪ Σ n ∪ … 注意点  φ≠ {ε} ( 「文字列がない」と「空文字列のみ」は異な る)  Σ * = {ε} ∪ Σ + (「 * 」は 0 回以上,「 + 」は 1 回以上)

6 文字と文字列の注意点 アルファベットは有限集合 文字列は有限長 長さ n の文字列全体からなる集合も,有限集合  |Σ| = s とすると, |Σ n | = s n 任意の長さの文字列全体からなる集合は,無限集合  例えば Σ={0, 1} のとき, Σ * の各要素を ε , 0, 1, 00, 01, 10, 11, 000, … と並べると,これは非負整数全体の集合と一対一の 対応になる. Σ が空でない有限集合ならば常に成り立つ.

7 文字列の連接・繰り返し x と y を文字列としたとき, x のコピーのあとに y のコ ピーをつないでできる文字列を, x と y の連接といい, xy で表す. 例  x = abcba, y=bcba のとき, xy = abcbabcba  x = 11, y = 00 のとき, xyx =  x = 0011 のとき, x1 = xε = εx = x .すなわち,任意の文字列と空文字列を連接 すると,空文字列は吸収される( x = ε のときにも成り立 つ). |xy| = |x| + |y| .すなわち,連接した文字列の長さは,も との長さの和となる. x を文字列としたとき, x の n 回繰り返しを x n と表す. x 0 =ε である. x * = { x n | n ≧ 0 } , x + = { x n | n > 0 } と定義す る.

8 部分文字列 文字列 x, y に対して, y = wxz と表されるならば, x は y の部分文字列であるという.  x, y, w, z のいずれも, ε であってもよい.  「 y を w, x, z に分解する」ともいう.  |y| = |w| + |x| + |z|, |w| ≦ |y|, |x| ≦ |y|, |z| ≦ |y| が成り立つ. 例  101 や 010 は の部分文字列であるが, 11 や 111 は の部分文字列ではない.  abcba は abcba の部分文字列であるが, abdba は abcba の部分文字列ではない.

9 言語 アルファベット Σ ,集合 L に対して L ⊆ Σ * のとき, L を Σ 上 の言語という. 言語の例( Σ = {0,1} とする)  {ε, 01, 0011, , …}  {ε, 10, 11, 101, 111, 1011, 1101, …} {ε} , φ , Σ * も, Σ 上の言語である. Σ 上の言語は,有限集合かもしれないし,無限集合かも しれない. Σ が有限集合であっても,「 Σ 上の言語全体からなる集 合」は( Σ * よりも大きな)無限集合である.

10 「問題」を「言語」で規定する 例1:「わかやまだいがく」は,正規表現パターン 「わ.* だい」にマッチするか?  Σ = { わ, か, や, ま, だ, い, が, く } とし,  L 1 : 「わ.* だい」にマッチする文字列全体からなる集合  L 2 : 「わかやまだいがく」を部分文字列に持つ文字列全体 からなる集合  を求めた上で, L 1 ∩L 2 ≠φ か否かを判定すればよい. 例2: を 2 進数と見たときの数値 (29) は素数か?  Σ={0,1} に対して,素数の 2 進表現全体からなる集合 PRIME を求め, ∈ PRIME か否かを判定すればよい. 文字列の集合は無限集合になり得るが,「求める」こと はできるの?

11 終端記号と非終端記号(文法の準備として) アルファベットの各文字は終端記号と呼ばれる. アルファベットと別に,文字の集合を定義する.そこに 属する各文字は非終端記号と呼ばれる. 文法は,出発記号と呼ばれる非終端記号から,有限回の 導出により,終端記号のみからなる系列(文字列)を求 めるためのルールを提供する. S10 0S0 S

12 文脈自由文法 形式的には, (V, T, P, S) の四字組で表される.ここで,  V は,非終端記号の集合(空でない有限集合)  T は,終端記号の集合(空でない有限集合)  P は,「 X→α 」で記述される生成規則の集合である.ただ し, X ∈ V であり, α ∈ (V ∪ T) * ,すなわち α は終端記号と非終端記 号による長さ 0 以上の系列である.  S ∈ V であり, S は出発記号と呼ばれる. 例: V = {S}, T = {0, 1}, P = {S→ε, S→0, S→1, S→0S0, S→1S1} .

13 文脈自由文法における導出 先ほどの例 ({S}, {0, 1}, {S→ε, S→0, S→1, S→0S0, S→1S1}, S) に対して,  S ⇒ 0S0 ⇒ 01S10 ⇒  S ⇒ 0S0 ⇒ 01S10 ⇒ 01ε10 = 0110  S ⇒ 1  S ⇒ ε のようにして, S から , 0110 , 1 , ε などを導出す ることができる. 文脈自由文法 G=(V, T, P, S) に対して, S から導出できる (非終端記号のみからなる)文字列全体の集合を L(G) と書き,文法 G の言語という.  上の例で得られる言語は,アルファベット {0, 1} での回文 (先頭から見ても,末尾から見ても同じになる文字列)で ある.

14 文法 形式的には, (V, T, P, S) の四字組で表される.ここで,  V は,非終端記号の集合 (Variable)  T は,終端記号の集合 (Terminal)  P は,「 α→β 」で記述される生成規則の集合である.ただ し, α ∈ (V ∪ T) * - T * , β ∈ (V ∪ T) * である. (Production Rule)  S ∈ V であり, S は出発記号と呼ばれる. (Start Symbol) 文脈自由文法は,上で定義した「文法」のうち,生成規 則に制限を加えたものである.  文法により導出できる言語の集合は,文脈自由文法のそれ よりも真に大きい.  ある文法( ≠ 文脈自由文法)から導出できる言語があると き,それを導出できる文脈自由文法が存在するかもしれな い.

15 正規文法 文法の4字組 (V, T, P, S) と, V, T, S はこれまでと同じ. P は,「 X→a 」または「 X→aY 」で記述される生成規則 の集合である.ただし, X, Y ∈ V, a ∈ T である. 正規表現 "(01)+" に対応する正規文法  V = {S, A}  T = {0, 1}  P = {S→0A, A→1, A→1S}  導出の例 S ⇒ 0A ⇒ 01 S ⇒ 0A ⇒ 01S ⇒ 010A ⇒ 0101

16 文脈依存文法,句構造文法 文脈依存文法  文法の4字組 (V, T, P, S) と, V, T, S はこれまでと同じ.  P は, 「 αXβ→αγβ 」で記述される生成規則の集合である. ただし, X ∈ V , α, β, γ ∈ (V ∪ T) * 直感的には, α と β ではさまれた「文脈 (context) 」のもと で, X を γ に書き換える. 句構造文法  前述の「文法」のこと.

17 チョムスキー階層(1) 線形拘束オートマ トン (制限有りのメ モリ) 文脈依存文法 メモリの制約を除 いて,現在の計算 機と同等の計算能 力 チューリングマシ ン (無限長のメモリ) 句構造文法 コンパイラ構成の 理論的基礎 プッシュダウン オートマトン (ス タック) 文脈自由文法 正規表現(後方参 照なし) 有限オートマトン (記憶装置がない) 正規文法 備考機械文法 文脈依存言語 句構造言語 文脈自由言語 正規言語 言語

18 チョムスキー階層(2) 言語全体 句構造言語 文脈依存言語 文脈自由言語 正規言語

19 クラス 集合の集合を,「集合族」または「集合のクラス」とい う.  集合を分類( classify )したいときに,「クラス」が好まれ る. 例:文脈自由言語全体の集合を L cf ,回文全体からなる言 語を L とすると,  L ∈ L cf ( L ⊆ L cf ではない)  11 ∈ L

20 オートマトン 入力に対して内部の状態に応じた処理を行う,仮想的な 自動機械.計算機の数学的なモデルである.有限個の 「状態」と,状態と入力によって次の状態が決まる「関 数」を持つ. オートマトンの例  有限オートマトン,プッシュダウンオートマトン,チュー リングマシン,セルオートマトン 英語  automaton .複数形は automata  「自動化」は, automation

21 有限オートマトン 内部にいくつか(有限個)の状態を持つ.任意の時点で, その中の一つの状態にいる. 外界からの入力に応じて,今いる状態から次の状態へと 遷移する. 一つの開始状態と,一つ以上の終了状態を持つ. 形式的には, 5 字組 (Q,Σ, δ, q 0, F) で表現される(詳細は 省略).

22 有限オートマトンの例(1) スイッチの状態 "int" の認識 正規表現 10+1(0|1)* オフオン "i""in""int" q1q1 q2q2 開始 押す i "" 開始 nt 0 q2q q0q0 1

23 有限オートマトンの例(2) 「偶数個の 0 と偶数個の 1 を持つ文字列」全体に対応する 有限オートマトンは? 1 q 偶奇 q 偶偶 q 奇奇 q 奇偶 ホップクロフト,モトワニ,ウルマン著,野崎昭弘,高橋正子,町田元,山崎秀記訳 『オートマトン 言語理論 計算論Ⅰ [ 第 2 版 ] 』, p.56

24 まとめ 形式言語理論により,プログラミングをしたり,アルゴ リズムを考えたりする際の「文字」「文字列」「言語 (文字列のある集合)」の扱いが明確になる.  有限集合か無限集合かは常に注意する. 「言語」と 「言語を導出する形式的なルール(文法)」と 「言語を受理する理論的な機械(オートマトン)」には 対応関係や階層関係がある.