Microsoft PowerPoint - 11Syntax.ppt

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

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

PowerPoint プレゼンテーション

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

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

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

オートマトンと言語

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

オートマトンと言語

nlp1-04a.key

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

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

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

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

Microsoft PowerPoint - 03BNFScanner-print.ppt

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

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

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

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

情報数理学

Microsoft PowerPoint - Compiler05note.pptx

C8

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

Microsoft Word - Javacc.docx

Microsoft PowerPoint - Compiler05.pptx

nlp1-05.key

Microsoft PowerPoint - Compiler03note.pptx

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

JavaプログラミングⅠ

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

オートマトンと言語

数理言語

Microsoft PowerPoint - Compiler03.pptx

生命情報学

Microsoft PowerPoint ppt

数理言語

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

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

Microsoft PowerPoint - 9.pptx

Microsoft PowerPoint - 9.pptx

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

2-1 / 語問題 項書換え系 4.0. 準備 (3.1. 項 代入 等価性 ) 定義 3.1.1: - シグネチャ (signature): 関数記号の集合 (Σ と書く ) - それぞれの関数記号は アリティ (arity) と呼ばれる自然数が定められている - Σ (n) : アリ

An Automated Proof of Equivalence on Quantum Cryptographic Protocols

Microsoft PowerPoint - 10pda.ppt

Microsoft PowerPoint - 7.pptx

Microsoft PowerPoint - 10.pptx

言語プロセッサ2005

Microsoft PowerPoint - mp11-02.pptx

Microsoft Word - VBA基礎(3).docx

オートマトンと言語

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

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

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

PowerPoint Presentation

Microsoft PowerPoint - Compiler06.pptx

Microsoft Word - problem3.doc

Microsoft PowerPoint - mp11-06.pptx

テキスト処理第 12 回 ( ) 田中哲産業技術総合研究所情報技術研究部門 u.ac.jp /

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

5_motif 公開版.ppt


航空機の運動方程式

Microsoft PowerPoint - Compiler06note.pptx

Matrix and summation convention Kronecker delta δ ij 1 = 0 ( i = j) ( i j) permutation symbol e ijk = (even permutation) (odd permutation) (othe

PSCHG000.PS

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

文字列操作と正規表現

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

Microsoft Word ã‡»ã…«ã‡ªã…¼ã…‹ã…žã…‹ã…³ã†¨åłºæœ›å•¤(佒芤喋çfl�)

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

PowerPoint プレゼンテーション

プログラミング基礎

第12回 モナドパーサ

8 / 0 1 i++ i 1 i-- i C !!! C 2

離散数学

福岡大学人文論叢47-3

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

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

スライド 1

Microsoft PowerPoint - 10pda.ppt

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

Probit , Mixed logit

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf



スライド 1

Microsoft PowerPoint - H22制御工学I-2回.ppt

アプリケーション インスペクションの特別なアクション(インスペクション ポリシー マップ)

Microsoft PowerPoint - enshu4.ppt [äº™æ‘łã…¢ã…¼ã…›]

nlp1-12.key

プレポスト【解説】

aaa

Microsoft Word - thesis.doc

Microsoft PowerPoint - LogicCircuits01.pptx

耳桁の剛性の考慮分配係数の計算条件は 主桁本数 n 格子剛度 zです 通常の並列鋼桁橋では 主桁はすべて同じ断面を使います しかし 分配の効率を上げる場合 耳桁 ( 幅員端側の桁 ) の断面を大きくすることがあります 最近の桁橋では 上下線を別橋梁とすることがあり また 防音壁などの敷設が片側に有る

プログラミング実習I

Microsoft PowerPoint - sakurada3.pptx

構造化プログラミングと データ抽象

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

Microsoft PowerPoint ppt

Transcription:

言語理論 : 知的情報処理 (11) 構文論 慶應義塾大学理工学部櫻井彰人 言語を定義する方法 ( いくつかある ): 文法 ( 生成規則 ) オートマトン 既知の言語間の演算 これらの間には対応関係がある 自然言語の記述だけでなく 例えば コンパイラの設計に使用 言語の定義方法 プログラム言語の構文を簡単に どうやって定義するか 定義方法は使いやすくあるべし, i..: 定義は有限の長さ 与えられた文字列がその言語に属するか否かを調べるアルゴリズムが存在する必要がある さらに その意味が一意に抽出できるアルゴリズムが必要 広く使われている方法は ( 生成規則を用いた ) 文法記述 形式的な言語では これで ほぼ 十分 しかし 自然言語の記述には 更なる工夫が必要 文法 ::= n + n ::= d nd d ::= 0 1 2 3 4 5 6 7 8 9 式 + n n+n nd d+d dd d+d 27 4 + 3 文法は言語を定める式は 生成規則を順に適用することによって導出される ご存じですね? 言語 記号を有限個並べて得られる系列記号列 言語 制約 : 文法という チョムスキーによる 自然言語研究が始まり 文法の定義方法 文 は 主部 と 述部 からなる 主部 は 名詞句 と が からなる 名詞句 は 名詞 か 修飾句 を一個以上並べたものに 名詞 をつけたもの < 文 > = < 主部 > < 述部 > 種類が異なることに注意 < 主部 > = < 名詞句 > が < 名詞句 > = < 名詞 > < 修飾句並び > < 修飾句並び > = < 修飾句 > < 修飾句並び > < 修飾句 >

形式的には : 生成規則 production rul : 終端記号 trminal ymbol, またはアルファベット alphabt 非終端記号 nontrminal ymbol 文法を記述するための記号 NP VP. NP N A NP. 文法の書き方 ( 生成方向 ) A X 1 X 2... X m 書き換え規則生成規則 BNF (Backu Naur form, Backu normal form) 文法の書き方 ( 解析方向 ) A X 1 X 2... X m 同一記号の書換え A X 1 X 2... X m A Z 1 Z 2... Z m 解析方向 : 使用することはまれ A X 1 X 2... X m Z 1 Z 2... Z m と記述 文法例 1 文法例 2 字 字字 0 1 2 3 4 5 6 7 8 9 非終端記号 字 字字字 2 0 0 1 終端記号 非終端記号 項 因子 式 項 因子 式 3 * 5 + 8 式式 + 項 項項項 * 因子 因子因子 ( 式 ) 項 因子 式足し算項かけ算 終端記号

文法例 3 文 n 名詞 v 動詞 p 助詞 pp 後置詞句 動詞句 pp n p v pp pp n p n p v 一郎が公園を走る pp pp v n p 一郎 公園が を走る非終端記号終端記号 チョムスキー階層 3 型正規文法受理 : 有限状態オートマトン A a A a B 2 型文脈自由文法受理 : プッシュダウン オートマトン A X 1 X 2...X m 1 型文脈依存文法受理 : 線型有界オートマトン Z 1 Z 2...Z n X 1 X 2...X m n m 0 型句構造文法受理 : チューリング機械右辺 左辺とも任意 a 終端記号 A,B 非終端記号 X,Z どちらか 有限状態オートマトン A cad ab a,a 非終端記号 a,b,c,d 終端記号 決定性プッシュダウンオートマトン cd cd,a 非終端記号 c,d 終端記号 c A d : 0 1 2 3 A: a b 0 1 2 a : 0 c 1 d 2 c d 3 c c c c c d c d c 後で d との対応させるために c をとっておく ( 一般には ) スタック 正規文法で記述できない言語の例 () ε 文脈自由文法では記述可 とか () ε 文脈自由文法では記述可 ((( ))) ( (( )) ( ((((( ))))) () ) ) 文脈自由文法で記述できない言語の例 L = { a n b m c n d m n,m 1} u k uのk 回並び aa bbbb cc dddd L={ wcw w は (a b)* } aabbcaabb aacaa

構文解析の手法 下向き v. 上向き 文法項目をまとめてより上位の項目に あらゆる纏め方を考える 実際に生成して同じものができるか? 深さ優先 v. 広さ優先 候補生成の順番 : 縦方向 横方向 最左 v. 最右 左端 ( 初め ) からか 右端からか 左から2 番目 ということも考えられるが 下向き解析例 1 文法 cad A ab a 入力 cad,a 非終端記号 a,b,c,d 終端記号 cad cabd 失敗バックトラック cad 成功 解析例 2 下向き + 縦 + 最左 入力一郎が公園を走る pp n p v pp pp v n p 一郎 公園が を走る pp 一郎が一郎 p n p 一郎が公園 p 一郎 p 一郎が公園が 一郎が 一郎が公園を 一郎が pp... 一郎が n p 一郎が公園を走る 上向き型 A B aab Abc b d 入力 abbcd aabcd aad aab 最右 + 深さ優先 解析例 2 深さ優先 + 最右 pp n p v 一郎が公園を走る pp pp 走る nが公園を走る pp pp v n p 公園を走る pp pp pp 公園を走る pp 失敗 pp n を走る pp 成功 pp n p 走る pp pp v n p 一郎 公園が を走る 構文解析木 導出過程を表現した木 + n n+n nd d+d dd d+d 27 4 + 3 27 木は 括弧付けされた式を表すと考えられる + 4 3

構文解析 式が与えられたとき 構文木を作成すること 曖昧性があることもある 式 27 4 + 3 に二通りの構文解析方法がありうる 問題となるのは : 27 (4 + 3) (27 4) + 3 曖昧性を解消する方法 手順で 纏める順序は * が + より先 3*4 + 2 は (3*4) + 2 と解析 結合性 (aociativity) 等しい優先順序の演算は 左 ( または右 ) から括弧でくくる 3 4 + 5 は (3 4) + 5 と解析詳細はコンパイラの本等を 文法の性質 文法は 多くの場合 生成規則で記述される 文法が異なっても 生成する言語は同じときがある 同一の言語を生成する文法は等価 quivalnt であるという ある文法では 生成規則の適用順序や適用規則が異なるにも関わらず 同じ文が生成されることがある 曖昧 ambiguou な文 曖昧 ambiguou な文法という Chomky 階層 認識機械との対応 Chomky 階層 ( 文法規則のパターンに対する制限の強弱 typ-0: 弱い ~typ-3: 強い ): typ-0 typ-1: 文脈依存 contxt dpndnt grammar typ-2: 文脈自由 contxt-fr grammar typ-2: 正規 rgular grammar 文法規則のパターンに対する制限が弱いほど 文法的に正しい文と正しくない文の違いが微妙になる 文の認識機械 ( 与えられた文字列が文か文でないかを判定する機械 ) の複雑さは 文法の階層によって異なる : typ-0 の言語を認識するには Turing 機械が必要 ( なこともある ) 文脈依存言語を認識するには 線形有界オートマトン linarly boundd automata が十分 必要 ( なこともある ) 文脈自由言語を認識するには プッシュダウンオートマトン puhdown automata が十分 必要 ( なこともある ) 正規言語を認識するには 有限オートマトン finit automata で十分 有限オートマトン finit automata 有限オートマトンは, 5つ組 M = (Q, Σ, δ, q 0, F), ただし 1. Q : 状態 tat の有限集合 2. Σ: ( 許される ) 入力記号 accptabl input ymbol の 有限集合 3. δ: 遷移関 tranition function 4. q 0 Q : 初期状態 initial tat 5. F : 終了状態 final tat の集合 正規文法と有限オートマトン 正規文法で定義できる言語と 有限オートマトンで定義できる言語とは一致する すなわち この 2 つの定式化は等価である 以下に述べる 正規文法で定義される言語の性質は いずれもテストすることができる : 2 言語の等価性 定義した言語が空かどうか 所与の文字列が 所与の言語の要素かどうか 残念なことに 正規文法で定義できる言語というのは 非常に限られた言語だけである

文脈自由文法の性質 コンパイラ言語の構文解析は 所与の文字列が 文脈自由言語 contxt-fr grammar, or cfg に従っているかどうかをチェックすることと考えられる 以下のような ( 他にもたくさん ) 話題がある 曖昧性の問題 演算子の優先順位 文法の変換 文法の変換 tranformation 文脈自由文法を 任意の形式に変換するような一般的アルゴリズムは存在しない しかし 任意の文脈自由文法は Chomky 標準形に変換することができる A BC (A, B, C N) A a (A N, a T) グライバッハ Gribach 標準形もよく知られている Backu-Naur form ::= 左辺は右辺で定義される < > 範疇の名称は角括弧 angl brackt で囲む 例 : <program> ::= program <dclaration_qunc> bgin <tatmnt_qunc> nd ; Extndd Backu-Naur form N. Wirth が Pacal と Modula-2 を定義するのに使用 1981 年 Britih tandard Intitut が標準化 記号の追加 または * Kln の星印 ( ) メタレベルの括弧 比較 BNF と EBNF の比較 図式表現 BNF digit 0 digit 1 digit 9 unignd_intgr digit unignd_intgr digit unignd_intgr Idntifir Lttr Lttr Digit EBNF digit 0 1 2 3 4 5 6 7 8 9 unignd_intgr digit digit *