Microsoft PowerPoint - アルデIII 02回目10月15日

Similar documents
Microsoft PowerPoint - アルデIII 02回目10月14日

オートマトンと言語

オートマトンと言語

Microsoft PowerPoint - アルデIII 10回目12月09日

Microsoft PowerPoint - 3.ppt [互換モード]

オートマトンと言語

Microsoft PowerPoint - 11Syntax.ppt

PowerPoint プレゼンテーション

Microsoft PowerPoint - 02LanguageTheory.ppt [互換モード]

nlp1-04a.key

文法と言語 ー文脈自由文法とLR構文解析2ー

C8

オートマトン 形式言語及び演習 1. 有限オートマトンとは 酒井正彦 形式言語 言語とは : 文字列の集合例 : 偶数個の 1 の後に 0 を持つ列からなる集合 {0, 110, 11110,

Microsoft PowerPoint - 03BNFScanner.ppt [互換モード]

数理言語

PowerPoint プレゼンテーション

オートマトンと言語

PowerPoint プレゼンテーション

Microsoft PowerPoint - 08LR-conflicts.ppt [互換モード]

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

Microsoft PowerPoint ppt

オートマトンと言語

Microsoft PowerPoint L03-Syntex and Semantics-1-students ( )

オートマトンと言語

Microsoft PowerPoint - 03BNFScanner-print.ppt

計算機アーキテクチャ

Microsoft Word - Javacc.docx

Microsoft PowerPoint ppt

Microsoft Word - 中間試験 その1_解答例.doc

オートマトンと言語

Microsoft PowerPoint ppt

Microsoft PowerPoint - アルデIII 13回目01月12日 [互換モード]

システムソフトウエア2013/1/30 演習問題 学科 学籍番号 氏名 1. つぎの文章の空白を埋めなさい. コンピュータは,CPU( 中央処理装置 ) とメモリ, およびその他の入出力装置から構成されて いる. このうち,CPU は命令の (a) とデコードなどを行う制御部と, 実際の計 算を行う

Microsoft PowerPoint - Compiler05note.pptx

オートマトン 形式言語及び演習 3. 正規表現 酒井正彦 正規表現とは 正規表現 ( 正則表現, Regular Expression) オートマトン : 言語を定義する機械正規表現 : 言語

Microsoft Word - problem3.doc

言語プロセッサ2005

Microsoft PowerPoint - Compiler05.pptx

18/12/06 情報工学実験 C コンパイラ (2018 年度 ) 担当 : 笹倉 佐藤 その 3 yacc の構造 定義部 %% 定義部の終了 規則部 %% 規則部の終了 ユーザ定義サブルーチン部 :C のプログラムを書く 形は lex と同じ 1

情報数理学

Microsoft PowerPoint - 5.ppt [互換モード]

Microsoft PowerPoint - 1.ppt [互換モード]

情報工学実験 C コンパイラ第 2 回説明資料 (2018 年度 ) 担当 : 笹倉 佐藤

CプログラミングI

関東/関西/九州同時開催 女性エンジニア大集合!新春LT 座談会 スクリプト インタプリタを 作ってみた 1 スクリプトインタプリタを作ってみた

PowerPoint Presentation

言語プロセッサ2005 -No.6-

プログラミング実習I

Microsoft Word - CompA-Ex doc

nlp1-05.key

program7app.ppt

Microsoft PowerPoint - Compiler06.pptx

パソコンシミュレータの現状

模擬試験問題(第1章~第3章)

オートマトン 形式言語及び演習 4. 正規言語の性質 酒井正彦 正規言語の性質 反復補題正規言語が満たす性質 ある与えられた言語が正規言語でないことを証明するために その言語が正規言語であると

Microsoft PowerPoint - C1(演算と変数).ppt

COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1

JavaScriptで プログラミング

自然言語は曖昧性だらけ! I saw a girl with a telescope 構文解析 ( パージング ) は構造的な曖昧性を解消 2

ソフトウェア基礎 Ⅰ Report#2 提出日 : 2009 年 8 月 11 日 所属 : 工学部情報工学科 学籍番号 : K 氏名 : 當銘孔太

Microsoft PowerPoint - Compiler06note.pptx

UNIX 初級講習会 (第一日目)

Microsoft PowerPoint - Compiler03.pptx


Microsoft PowerPoint PCFG.ppt

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

画像解析論(2) 講義内容

ex04_2012.ppt

PowerPoint Presentation

コンピュータよもやま話 コンピュータの基礎

Microsoft PowerPoint - Compiler03note.pptx

Prog1_2nd

PowerPoint プレゼンテーション

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

JavaプログラミングⅠ

P.1P.3 P.4P.7 P.8P.12 P.13P.25 P.26P.32 P.33

第9回 配列(array)型の変数

例 e 指数関数的に減衰する信号を h( a < + a a すると, それらのラプラス変換は, H ( ) { e } e インパルス応答が h( a < ( ただし a >, U( ) { } となるシステムにステップ信号 ( y( のラプラス変換 Y () は, Y ( ) H ( ) X (

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

スライド 1

Microsoft PowerPoint - 10pda.ppt

Prog1_3rd

スライド 1

第 2 章 PL/SQL の基本記述 この章では PL/SQL プログラムの基本的な記述方法について説明します 1. 宣言部 2. 実行部 3. 例外処理部

第2回

プレポスト【解説】

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

PowerPoint プレゼンテーション

Microsoft Word _VBAProg1.docx

Java講座

t s s A

データ構造

Microsoft Word - no11.docx

解答編 第 9 章文字データの取り扱い 演習問題 9.1 文法事項 1 ) コンピュータにおける 文字データの取り扱いについて説明しなさい コンピュータでは 文字に整数の番号を割り当てて ( コード化して ) 文字コードとして扱います 実際に用いられる文字コードとして ASCII コード EUC コ

Functional Programming

構文解析表の作成講義でも少し触れましたが 各選言で先頭に出現する可能性がある終端記号の集合 のことを DIRECTOR 集合とよびます DIRECTOR は direction( 方向 ) を決定するという意味を持っており LL(k) 構文解析器が非終端記号を解析する際に そのうちどの選言を利用する

スライド 1

Microsoft PowerPoint - 13Kadai.pptx

コンパイラとは プログラミング言語 ( 高級言語 ) で書かれたプログラムを入力し, コンピュータが実行できる言語 ( 機械語など ) に変換するプログラムのこと例 : gcc コンパイラは対応する言語によって複雑である場合もあるし単純である場合もある 本実験では簡単な言語のコンパイラを作成する

主記憶の使われ方 システム領域 SP スタックポインタ システム用 スタック用 プログラム起動時に OS によって確 保される (SP が決められる ) プログラム用 メインルーチン プログラム領域 命令コードの列定数 変数用領域サブルーチン命令コードの列 先頭番地は リンク時に OS によって決め

Transcription:

アルゴリズムとデータ構造 III 2 回目 :10 月 15 日 文脈自由文法,CYK 法 授業資料 http://ir.cs.ymnshi.c.jp/~ysuzuki/lgorithm3/inde.html 1 2 3 4 5 6 7 8 9 授業の予定 ( 中間試験まで ) 10/01 スタック ( 後置記法で書かれた式の計算 ) 10/15 文脈自由文法, 構文解析,CYK 法 10/22 構文解析 CYK 法 10/29 構文解析 CYK 法 11/12 構文解析 ( チャート法 ), グラフ ( ダイクストラ法 ) 11/ 構文解析 ( チャート法 ), グラフ ( ダイクストラ法, DPマッチング ) 11/ グラフ (DPマッチング,* アルゴリズム ) 11/19 グラフ (* アルゴリズム ), 前半のまとめ 11/26 中間試験 10/08, 11/05 の代わりの補講日は後日相談 10 11 12 13 14 15 授業の予定 ( 中間試験以降 ) 12/03 全文検索アルゴリズム (simple serch, KMP) 12/10 全文検索アルゴリズム (M, ho-corsick) 12/17 全文検索アルゴリズム (ho-corsick), データ圧縮 01/07 暗号 ( 黄金虫, 踊る人形 ) 符号化 ( モールス信号, Zipfの法則, ハフマン符号 ) テキスト圧縮 01/14 テキスト圧縮 (zip), 音声圧縮 (DPCM,MP3,CELP), 画像圧縮 (JPEG) 01/21 期末試験 7 2 3 + - を計算してみよう ( アセンブリ言語でプログラミング ) 数式 (7 2 3 + -) をメモリ ( データ領域 ) に書き込まれている 1. データ領域から1 文字読み込む 1. 数字 ( アスキーコード :30H~39H) なら 1. 数値に変換し, 数値をスタックにプッシュ 2. 演算子なら 1. 一旦スタックにプッシュし, ポップする. 2. スタックからポップし, 数値をレジスタに取り込む 3. スタックからポップし, 数値をレジスタ ( アキュムレータ ) に取り込む 4. 演算子が+なら 1. + を計算し,レジスタに計算結果を格納 5. 演算子が-なら 1. - を計算し,レジスタに計算結果を格納 6. レジスタの内容をスタックにプッシュ 2. データ領域すべてを読み終えるまで続ける. 簡単な計算の例 7 2 3 + - ; 後置記法 7 2 3 + - の計算 ORG 8000H ; LD HL, DT ; 数式の先頭番地を指定 LOOP: LD, (HL) CP 00H JP Z, OWRI ; 数式を全部読み込んだら終わり LD E, (HL) LD D, 0H LD, (HL) INC HL CP 2H JP Z, LOOP ; +なら加算処理へ CP 2DH JP Z, LOOP ; -なら減算処理へ LD, E U 30H ; 数字なら数値に変換 ; レジスタの内容をスタックへプッシュ TPUH: LD E, LD D, 0H PUH DE ; 読み込んだ数値をスタックへプッシュ JP LOOP ; つぎの文字読み込みへ ; 加算 LOOP: ; 減算 LOOP: PUH DE ; 演算子をスタックへプッシュ POP DE ; 演算子をスタックからポップ LD, E ; スタックトップの値を レジスタへ LD, E ; スタックトップの値を レジスタへ DD, ; 加算 ( <= + ) JP TPUH PUH DE ; 演算子をスタックへプッシュ POP DE ; 演算子をスタックからポップ LD, E ; スタックトップの値を レジスタへ LD, E ; スタックトップの値を レジスタへ U ; 減算 ( <= - ) JP TPUH ; OWRI: HLT ; 入力データ DT: DEF 37H ;7 DEF 32H ;2 DEF 33H ;3 DEF 2H ;+ DEF 2DH ;- DEF 00H ;END END Z80 シミュレータ Z80 シミュレータ for Win32 http://www.gme3rd.com/soft/z80edit/inde.htm 1

( スタックを含めた ) メモリの様子 4.5.3 オートマトンと計算理論 オートマトンの受理する言語クラス オートマトン 受理言語型 言語クラス チューリング機械 第 0 型言語 句構造言語 (PL) 線形拘束チューリング 第 1 型言語 文脈依存言語 機械 (CL) プッシュダウンオートマ 第 2 型言語 文脈自由言語 (CFL) トン 有限オートマトン 第 3 型言語 正規言語 (RL) RL CFL CL PL ( チョムスキーの言語階層 ) ( は包含関係を表す) 8 形式言語と有限オートマトン入門 5 形式言語理論入門 5.1 形式言語理論 5.2 文脈自由文法 5.3 線形文法と正規言語 5.4 形式言語のクラス階層とオートマトン 5.5 言語処理への応用 形式文法 G の定義 G=(N,T,P,) N: 非終端記号の集合 T: 終端記号の集合 P: プロダクション : 開始記号 9 10 5.2 文脈自由文法 文脈自由文法 (CFG: Contet Free Grmmr) 文脈自由プロダクションのみから構成される 文脈自由プロダクション β ただし, N,β V* N: 非終端記号の集合,T: 終端記号の集合,V: NとTの直和 左辺が変数 1つ 文脈依存文法 (CG: Contet ensitive Grmmr) 文脈依存プロダクションを含むプロダクションから構成される 文脈依存プロダクション uv uβv ただし, N,u,v V*,β V + N: 非終端記号の集合,T: 終端記号の集合,V: NとTの直和 u=v=εのとき ( β) 文脈自由プロダクションとなる 11 文脈自由文法の例 ( 例題 5.9) CFG G=(N,T,P,) N( 非終端記号 )={,} T( 終端記号 )={,} P: 語 の導出過程 L(G) はどのような言語か 12 2

例題 5.9 の解答例 L(G): n n 正規表現では表せない CFG G=(N,T,P,) N={,} T={,} P:, プッシュダウンオートマトンでは表現可能 構文木 13 練習問題 1 例題 5.10 文脈依存文法の例 CG G=(N,T,P,) N={,,} T={,} P:,,,, 語 の導出過程 L(G) はどのような言語か 14 練習問題 1 解答例題 5.10 CG G=(N,T,P,) N={,,} T={,} P:,,,, 語 の導出過程 L(G) はどのような言語か 構文木 ( 導出木 ) Time flies like n rrow. 15 L(G): n n n 光陰矢の如し時蠅は矢を好む 16 NP N Time V flies VP like PP 2 種類の導出木 文法が曖昧 PREP NP DET N n rrow DJ Time NP N flies V like VP DET n NP N rrow 問題 : 例題 5.11 文法 N={},T={,+,*},P={ + * }, = 語 w= +**+ を導出せよ 語 wの導出木 導出木 + 解答例 導出 : + + +* +* +* +** +* *+ +**+ * * 17 例題 5.12 1 問題 文法 解答例 N={},T={,+,*},P={ + * } 中置記法 +*(+*) 前置記法 +*+* + + +* +* +*+ +*+ +*+* +*+* +*+* 導出木 + * + * 18 3

練習問題 2 例題 5.12 2 問題 文法 N={},T={,+,*},P={ + * } 中置記法 (*+*)*(+)* 前置記法 最左導出 構文木 19 練習問題 2 例題 5.12 2 の解答例 問題 文法 N={},T={,+,*},P={ + * } 中置記法 (*+*)*(+)* 導出木 * * + + 解答例 前置記法 **+**+ * * * ** **+ **+* **+* **+* **+** **+** **+** **+**+ **+**+ 20 文脈自由文法の曖昧性 例題 5.26 どのような導出を行っても同じ導出木が得られる 文法 G は曖昧でない 複数の異なった導出木が構成できるような語を含む 文法 G は曖昧である 文法 G=(N,T,P,) において, N={,,},T={,}, P:,, この文法が曖昧であることを示せ 21 22 例題 5.26 解答例同一文字列に対して 2 種類の導出木が構成可能 曖昧である 1. 2. 1. 2. P: 練習問題 3 例題 5.27 文法 G=(N,T,P,) において, N={,,,C},T={,}, P: C C,,, C C この文法が曖昧であることを, の導出木を構成して示せ 23 24 4

練習問題 3 例題 5.27 解答例同一文字列に対して 2 種類の導出木が構成可能 曖昧である 1. C C 2. C C C 1. 2. C C P: C C, C C CFG の構文図式 文脈自由プロダクション 構文図式 1 2 n 1 2 n 1 2 n 1 2 n C ε 25 ε 26 ここまで 構文解析 CYK 法 文脈自由文法で生成された文から自動的に構文木を生成する. 構文解析とは (Wikipedi より ) ある文章の文法的な関係を説明すること (prse) 計算機科学の世界では 構文解析は字句解析 (Leicl nlysis) とともに おもにプログラミング言語などの形式言語の解析に使用される また 自然言語処理に応用されることもある コンパイラにおいて構文解析を行う機構を構文解析器 (Prser) と呼ぶ 構文解析は入力テキストを通常 木構造のデータ構造に変換し その後の処理に適した形にする 字句解析によって入力文字列から字句を取り出し それらを構文解析器の入力として 構文木や抽象構文木のようなデータ構造を生成する 構文解析 入力文 ( 記号列 ) が与えられたとき, 文法によってその文を解析し, その構造を明らかにする 代表的な構文解析アルゴリズム CYK 法 チャート法 アーリー法 LR 法 構文木 ( 一郎が速いボールを軽々と投げた ) 文 後置詞句 動詞句 後置詞句名詞句動詞句 名詞助詞形容詞名詞助詞副詞動詞 一郎が速いボールを軽々と投げた 5

CYK(Cocke-Younger-Ksmi) 法 ボトムアップアルゴリズム 扱える文法 チョムスキーの標準形 C CYK 表 構文解析の途中経過を保持するための表 CYK アルゴリズム チョムスキーの標準形で表される文脈自由文法を対象とした構文解析法 チョムスキーの標準形 C (,,C Vn) ( Vn, Vt) X はチョムスキーの標準形ではないが X, に分解できる X C はチョムスキーの標準形ではないが X Y, Y C に分解できる 6