計算の理論 I 文脈自由文法 月曜3校時 大月美佳.

Slides:



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

プログラミング言語論 第3回 BNF 記法について(演習付き) 篠埜 功. 構文の記述 プログラミング言語の構文はどのように定式化できるか? 例1 : for ループの中に for ループが書ける。 for (i=0; i
システムソフトウェア 第3回:2007年10月17日(水)   . 2 本日学ぶこと 文法  文字と文字列  無限集合  文法とそのクラス  オートマトン.
データ構造とプログラミング技 法 (第3回) ー木構造ー. 木構造 (1) 根( root )と呼ばれる節 R が、 1 つだけ含まれ る。 R … TmTm T1T1 木構造: 1 個以上の節の有限集合 T であり、 次の二つの条件を満足するもの (2) 根以外の節は、 m (≧ 0 )個の互いに素な部.
和田俊和 資料保存場所 /2/26 文法と言語 ー正規表現とオートマトンー 和田俊和 資料保存場所
プログラミング言語論 第10回(演習) 情報工学科 木村昌臣   篠埜 功.
正規表現からのDFA直接構成.
計算の理論 I 文脈自由文法 月曜3校時 大月 美佳 平成15年6月30日 佐賀大学知能情報システム学科.
コンパイラ 2011年10月17日
計算の理論 I 決定性有限オートマトン(DFA) と 非決定性有限オートマトン(NFA)
計算の理論 I ー DFAとNFAの等価性 ー 月曜3校時 大月 美佳.
計算の理論 I -数学的概念と記法- 月曜3校時 大月 美佳.
文法と言語 ー文脈自由文法とLL構文解析ー
プログラミング言語論 第4回 式の構文、式の評価
計算の理論 II 文脈自由文法と プッシュダウンオートマトン
言語処理系(5) 金子敬一.
計算の理論 I -講義について+αー 月曜3校時 大月美佳.
データ構造とアルゴリズム 第6回の2 木 ~ データ構造(3)~.
第11講: 平成18年12月 8日 (金) 4限 E352教室 グラフ (1).
コンパイラ 2012年10月15日
コンパイラ 2011年10月24日
プログラミング言語論 第3回 BNF記法について(演習付き)
正則言語 2011/6/27.
形式言語の理論 5. 文脈依存言語.
計算の理論 I -Myhill-Nerodeの定理 と最小化-
計算の理論 I 正則表現 火曜3校時 大月 美佳 平成16年6月8日 佐賀大学知能情報システム学科.
計算の理論 I ー 正則表現(今度こそ) ー 月曜3校時 大月 美佳.
計算の理論 I 正則表現 月曜3校時 大月 美佳 平成15年6月9日 佐賀大学知能情報システム学科.
計算の理論 I ー 正則表現 ー 月曜3校時 大月 美佳.
データ構造とアルゴリズム (第3回) ー木構造ー.
言語と文法 言語とは,ルールに従う記号列の無限集合である. 文法を与えることで言語が定義できる.
計算の理論 I -Myhill-Nerodeの定理 と最小化-
計算の理論 II 言語とクラス 月曜4校時 大月美佳.
平成20年10月5日(月) 東京工科大学 コンピュータサイエンス学部 亀田弘之
計算の理論 I 文脈自由文法の標準形 月曜3校時 大月美佳.
計算の理論 II -講義内容説明と 基本事項確認ー
計算の理論 II 前期の復習 -有限オートマトン-
計算の理論 I ε-動作を含むNFA 月曜3校時 大月 美佳.
計算の理論 I ε-動作を含むNFA 月曜3校時 大月 美佳 平成15年6月2日 佐賀大学知能情報システム学科.
計算の理論 I 正則表現とFAとの等価性 月曜3校時 大月 美佳 平成15年6月16日 佐賀大学知能情報システム学科.
プログラミング言語論 第9回 情報工学科 木村昌臣 篠埜 功.
文法と言語 ー文脈自由文法とLL構文解析ー
コンパイラ 2011年10月20日
計算の理論 I ー閉包性ー 月曜3校時 大月 美佳.
計算の理論 I ー正則表現とFAの等価性 その1ー
計算の理論 I 決定性有限オートマトン(DFA) と 非決定性有限オートマトン(NFA)
文法と言語 ー文脈自由文法とLR構文解析ー
計算の理論 I 反復補題 月曜3校時 大月 美佳 平成15年7月14日 佐賀大学知能情報システム学科.
計算の理論 I 非決定性有限オートマトン(NFA)
計算の理論 I -数学的概念と記法- 火曜 12:50~14:20 大月 美佳 2004年4月20日.
計算の理論 I -プッシュダウンオートマトン-
計算の理論 I ー正則表現とFAの等価性ー 月曜3校時 大月 美佳.
計算の理論 I プッシュダウンオートマトン 火曜3校時 大月 美佳 平成16年7月6日 佐賀大学知能情報システム学科.
計算の理論 I -数学的概念と記法- 月曜3校時 大月 美佳.
2009/11/27 グラフ (1) 第9講: 平成21年11月27日 (金) 4限 E252教室 コンピュータアルゴリズム.
計算の理論 I -講義について+αー 月曜3校時 大月美佳 平成31年5月18日 佐賀大学理工学部知能情報システム学科.
アルゴリズムとデータ構造 第2章 リスト構造 5月24日分
4.プッシュダウンオートマトンと 文脈自由文法の等価性
計算の理論 I NFAとDFAの等価性 火曜3校時 大月 美佳 平成16年5月18日 佐賀大学理工学部知能情報システム学科.
計算の理論 I 反復補題 火曜3校時 大月 美佳 平成16年7月13日 佐賀大学知能情報システム学科.
計算の理論 I ー 正則表現 ー 月曜3校時 大月 美佳.
東京工科大学 コンピュータサイエンス学部 亀田弘之
コンパイラ 2012年10月11日
計算の理論 I ε-動作を含むNFAと等価なDFA
計算の理論 I ε-動作を含むNFA 火曜3校時 大月 美佳 平成16年5月25日 佐賀大学知能情報システム学科.
計算の理論 I -講義について+αー 火曜3校時 大月美佳 平成31年8月23日 佐賀大学理工学部知能情報システム学科.
計算の理論 I ー ε-動作を含むNFA ー 月曜3校時 大月 美佳.
計算の理論 I プッシュダウンオートマトン 月曜3校時 大月 美佳 平成15年7月7日 佐賀大学知能情報システム学科.
計算の理論 II 時間量と領域量 月曜4校時 大月美佳 2019/9/13 佐賀大学理工学部知能情報システム学科.
計算の理論 I 最小化 月曜3校時 大月 美佳 平成15年6月23日 佐賀大学知能情報システム学科.
Presentation transcript:

計算の理論 I 文脈自由文法 月曜3校時 大月美佳

連絡事項 レポートについて再掲 ミニテスト一部返却 問題用紙:A4 提出期限:平成14年7月8日(月) 提出場所:AV講義室 前回欠席者は講義終了後取りにくること 提出期限:平成14年7月8日(月) 授業終了時に回収 提出場所:AV講義室 欠席等で提出できなかった者は理由を明記の上 レポートボックス9番へ(7月15日まで) ミニテスト一部返却

今日の講義内容 文脈自由文法 定義 文脈自由言語(クラスCFL) 構文木と最左導出

文脈自由文法の重要性 プログラミング言語の定義 構文解析の概念の定式化 言語間の変換の簡単化 各種文字処理 自然言語処理 Buckus-Naur形式(BNF)記法 構文解析の概念の定式化 言語間の変換の簡単化 各種文字処理 自然言語処理

文脈自由文法の定義 文脈自由文法(context-free grammar) → G = (N, T, P, S) 要素 x ∈N 非終端記号(non-terminal symbol) 終端アルファベットT (有限集合) 要素 x ∈ T 終端記号(terminal symbol) 開始記号(start symbol) S∈Q 生成規則(production) P⊆N×(N∪Σ)* A→αと書く (α=εのときε生成規則) A→α1|…| αn = A→α1,…, A→αn → G = (N, T, P, S)

文脈自由文法の例 G=(N, T, P, S)を N={S}, T={a, b}, P={S→ab, S→aSb} N={S, A, B}, T={x, 0, 1}, P={S→xA, A→0|1B, B→ε|0B|1B}

⇒G G=(N, T, P, S)に対して、V=N∪Tとする。 u, vが次の(1), (2)を満たすときu⇒Gvと書くことにする。 u=xAy, v=xαy (x, y, α∈V*, A∈N)。 A→αはGの生成規則。

導出 (derive) ⇒G V*の要素の列w0, …, wnが * ⇒Gの反射的かつ推移的閉包 w0⇒Gw1⇒G …⇒Gwn となっているとき、 w0からwnが導出されるといい、 w0 ⇒Gwn または w0 ⇒Gwn と書く。(Gは省略可: ⇒、⇒、⇒) * n * n

文脈自由言語 (context-free language) Gの生成する語w 開始記号Sより 終端アルファベットT上の記号列wが Gの生成規則によって導出されるとき T上の言語L∈T*に対して GがLを生成する: L=L(G)となるとき。 文脈自由言語: Lを生成する文脈自由文法が存在する。

文脈自由言語の例 その1 Gを例1の文脈自由文法としたとき、 Gを例2の文脈自由文法としたとき、 S⇒aSb⇒aaSbb⇒…⇒an-1Sbn-1⇒anbn となり、 L(G)={anbn |n≧1} である。 Gを例2の文脈自由文法としたとき、 S⇒xA⇒x0 S⇒xA⇒x1B⇒x10B⇒x10 L(G)={xu|u=1v, v∈{0, 1}*またはu=0}

文脈自由言語の例 その2 G=(N, T, P, S)を N={S}, T={), (}, P={S→SS, S→(S), S→()} とすると、言語L(G)はかっこの入れ子構造 N={S}, T={0, 1, Φ, +, *, ), (}, P={S→Φ|0|1|(S+S)|SS|S*} とすると、言語L(G)は{0, 1}上の正規表現全体

文脈自由文法のクラス 文脈自由文法のクラスをCFLと書く CFL ={L|L=L(G)となる文脈自由文法Gがある}

グラフ (1.2節 pp. 2~5) どんなときに使うのか? 状態遷移図 文法木 各種アルゴリズムのデータ構造 その他いろいろ

グラフの定義 グラフ G=(V, E) 例 (図1.1 p.3) V: 有限個の頂点(vertex, node)の集合 E: 頂点の対((v1, v2) と表記)で示される辺(edge)の集合 例 (図1.1 p.3) V={1, 2, 3, 4, 5} E={(n, m)|n+m=4 または、n+m=7} 1 3 4 2 5

道 道 (path)、路 閉路 (cycle) : vi=vkのとき 道の例(図1.1 p.3) グラフのある頂点の列 v1, v2, …, vk (k≧1)が道であるというのは、 (v1, v2), (v2, v3), …, (vk-1, vk)がいずれも辺であるということ 閉路 (cycle) : vi=vkのとき 道の例(図1.1 p.3) 1, 3, 4 2 2, 5 1 3 4 2 5

有向グラフ 有向グラフ (directed graph, digraph) G 例 (図1.2 p.3) G=(V, E) Eの要素が有向辺(arc) v→w : vからwへ向かう有向辺 例 (図1.2 p.3) ({ 1, 2, 3, 4 }, { i→j|i<j }) 前者 (predecessor) 後者 (successor) 1 2 3 4

有向グラフの道 有向グラフの道 (path) 例 (図1.2 p.3) := vi→vi+1 (1≦i<k) が有向辺であるような頂点の列 v1, v2, …, vk (ただし、k≧1) 例 (図1.2 p.3) 1→2→3→4 : 1から4への道 1 2 3 4

木 木 (tree, ordered directed tree) 次の性質を持つ有効グラフ 前者を持たず、各頂点への道が必ず存在する根 (root)と呼ばれる頂点を一つ持つ 根以外の頂点はそれぞれただ一つ前者を持つ 各頂点の後者は左から右へ一列に順序つけられている

木の書き方 根を上に、各有向辺を下に向けて書く 有向辺の矢印は書く必要がない 頂点は(なんらかの)順序に従って左から右に書く 根 (root) 有向辺 (arc) 1 2 3 5 4

木特有の用語 親 (parent, father?) : 前者 子 (child, son?) : 後者 葉 (leaf) : 子を持たない頂点 内部 (interior) 頂点 : 葉でない頂点 先祖 (ancestor) と子孫 (descendant) 頂点v1からv2への道があるとき(v1:先祖、v2:子孫) 各頂点は自分自身の先祖かつ子孫 内部頂点 1 2 3 5 4 親 子 葉

構文木 品詞名 →内部頂点 英単語→葉 ‘The quick brown fox jumped over the lazy dog’

構文木 (parse tree) 文脈自由文法G=(N, T, P, S)に対して、構文木を帰納的に定義する。 ここで、V=N∪Tとする。

構文木の定義(1) 各A∈Vに対して、記号Aをラベルとする1つの頂点のみからなる木 は構文木である。 A

構文木の定義(2) A→εに対して、 は構文木である。 A ε

構文木の定義(3) t1, …tnを根のラベルが、A1, …, An∈Vである構文木とする。Gの生成規則A→A1…Anに対して、Aを根とする木 は構文木である。 A A1 … An t1 tn

構文木の定義(4) (4) 上の(1)~(3)の規則を使って定義される有限の木のみを構文木という。

構文木の例 G=(N, T, P, S)を N={S}, T={a, b}, P={S→ab, S→aSb} としたとき、構文木は右図。 a 0110010110 0110010110 a b S

最左導出 (leftmost derivation) * 導出u⇒vの各ステップにおいて一番左にある非終端記号が置き換えられているとき、その導出は最左導出である。 G=(N, T, P, S)を N={S}, T={), (}, P={S→SS, S→(S), S→()} とすると、 S⇒(S)⇒((S))⇒((SS))⇒((()S)⇒((()())) は最左導出。

走査 (traverse) 根から始めてどのように走査するか A⇒u 最左導出 →左側順走査 * ) ( S (preorder traverse) * ) ( S

補題 G=(N, T, P, S)を文脈自由文法とする。導出u⇒vがあるならば、uからvへの最左導出がある。 証明 u=w1A1w2…wkAkwk+1(Ai∈N, wj∈T*)とする。 このとき、vの分解v= w1v1w2…wkvkwk+1があって、 Ai ⇒vi (1≦i≦k)となる。 そこで、 Ai ⇒viに対する構文木を取り、その左側順走査を 考えれば、 Aiからviへの最左導出が得られる。 それらの最左導出を、非終端記号の順に適用していけば 求める最左導出が得られる。

最右導出 (rightmost derivation) 最左導出と反対に右から置き換えていく導出 G=(N, T, P, S)を N={S}, T={), (}, P={S→SS, S→(S), S→()} とすると、 S⇒(S)⇒((S))⇒((SS))⇒((S ()))⇒((()())) は最左導出。

曖昧性 曖昧 本質的に曖昧→4.7 (p.128) ある語に二つ以上の構文木があるとき ⇔ 二つ以上の最左導出をもつ または 二つ以上の最右導出をもつ とき 本質的に曖昧→4.7 (p.128)

今日のミニテスト ミニテスト 資料、ミニテストがない人は前へ 交換採点を行い、提出したら帰って良し 類題 教科書・資料を見ても良い 演習問題4.8 (p.135)