Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Yuto Takei
PDF, PPTX
885 views
[Basic 10] 形式言語 / 字句解析
早稲田大学 高度データ関連人材育成コンソーシアム D-DATa ブロックチェーン エンジニアリング 基礎編 第10回 2018/3/1
Education
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 20
2
/ 20
3
/ 20
4
/ 20
5
/ 20
6
/ 20
7
/ 20
8
/ 20
9
/ 20
10
/ 20
11
/ 20
12
/ 20
13
/ 20
14
/ 20
15
/ 20
16
/ 20
17
/ 20
18
/ 20
19
/ 20
20
/ 20
More Related Content
PDF
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
by
Yuto Takei
PPT
言語処理系入門1
by
Kenta Hattori
PPT
言語処理系入門2
by
Kenta Hattori
PPT
言語処理系入門3
by
Kenta Hattori
PDF
一階述語論理のメモ
by
Keisuke OTAKI
PDF
機械翻訳の今昔物語
by
Hiroshi Nakagawa
PDF
黒い目の大きな女の子:構文から意味へ
by
Hiroshi Nakagawa
PDF
関数型都市忘年会『はじめての函数型プログラミング』
by
Kenta USAMI
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
by
Yuto Takei
言語処理系入門1
by
Kenta Hattori
言語処理系入門2
by
Kenta Hattori
言語処理系入門3
by
Kenta Hattori
一階述語論理のメモ
by
Keisuke OTAKI
機械翻訳の今昔物語
by
Hiroshi Nakagawa
黒い目の大きな女の子:構文から意味へ
by
Hiroshi Nakagawa
関数型都市忘年会『はじめての函数型プログラミング』
by
Kenta USAMI
What's hot
PDF
IBMModel2
by
Hidekazu Oiwa
PDF
非正格関数に対して適用可能な融合変換
by
Masahiro Sakai
PPT
Fast approximate search in large dictionaries
by
Yusuke Matsubara
PDF
C言語講習会4
by
odenhadengaku
PDF
C言語講習会2
by
odenhadengaku
PDF
Probabilistic Graphical Models 輪読会 Chapter5
by
Daiki Shimada
PDF
C言語講習会3
by
odenhadengaku
PDF
Levenshtein Automata
by
Masahiro Honma
PDF
C言語講習会1
by
odenhadengaku
PDF
.NET系開発者から見たJava
by
bleis tift
PDF
輪講・卒論にむけてのLaTeX入門
by
Toshiaki Hashimoto
PDF
Haxeについて
by
Moriyoshi Koizumi
PPTX
1+1=2の話
by
明洋 庄司
PPTX
1+1=2の話(coinsのOCのLTで話したやつ)
by
明洋 庄司
PDF
Scala 初心者が米田の補題を Scala で考えてみた
by
Kazuyuki TAKASE
PPT
111127.lsj143.田川 japanese conjugation and dm
by
Takumi Tagawa
ODP
正規表現
by
bsdhack
PDF
ストーリーテリング・アルゴリズムの論文紹介と擬似実装(word2vecの応用)
by
Tyee Z
PPTX
定理証明言語によるハードウェア検証
by
Shunji Nishimura
PPT
言語処理系入門7
by
Kenta Hattori
IBMModel2
by
Hidekazu Oiwa
非正格関数に対して適用可能な融合変換
by
Masahiro Sakai
Fast approximate search in large dictionaries
by
Yusuke Matsubara
C言語講習会4
by
odenhadengaku
C言語講習会2
by
odenhadengaku
Probabilistic Graphical Models 輪読会 Chapter5
by
Daiki Shimada
C言語講習会3
by
odenhadengaku
Levenshtein Automata
by
Masahiro Honma
C言語講習会1
by
odenhadengaku
.NET系開発者から見たJava
by
bleis tift
輪講・卒論にむけてのLaTeX入門
by
Toshiaki Hashimoto
Haxeについて
by
Moriyoshi Koizumi
1+1=2の話
by
明洋 庄司
1+1=2の話(coinsのOCのLTで話したやつ)
by
明洋 庄司
Scala 初心者が米田の補題を Scala で考えてみた
by
Kazuyuki TAKASE
111127.lsj143.田川 japanese conjugation and dm
by
Takumi Tagawa
正規表現
by
bsdhack
ストーリーテリング・アルゴリズムの論文紹介と擬似実装(word2vecの応用)
by
Tyee Z
定理証明言語によるハードウェア検証
by
Shunji Nishimura
言語処理系入門7
by
Kenta Hattori
Similar to [Basic 10] 形式言語 / 字句解析
PDF
PEGの回文っぽいExpression
by
Sosuke MORIGUCHI
PDF
[Basic 12] 関数型言語 / 型理論
by
Yuto Takei
PDF
正規表現と正規言語
by
Hideaki Miyake
PDF
形態素解析の過去・現在・未来
by
Preferred Networks
PDF
アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数・文字列探索・簡単なソート]
by
hixi365
PPTX
コンピュータシステムの理論と実装10
by
Yoko Yama
PDF
深層学習時代の自然言語処理
by
Yuya Unno
PDF
Design by contractとホーア論理
by
Takuya Matsunaga
PDF
TAPL 勉強会(紹介編)
by
none_toka
PDF
AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜
by
Ryoma Sin'ya
PPT
20150903 jasis2015 生島
by
Takahiro Ikushima
PDF
TAPL勉強会 第1章 (2012-07-17)
by
none_toka
PDF
2013computer s1
by
munich1502
PDF
文法圧縮入門:超高速テキスト処理のためのデータ圧縮(NLP2014チュートリアル)
by
Shirou Maruyama
PDF
Grammatical inference メモ 1
by
Keisuke OTAKI
PPT
言語処理系入門10
by
Kenta Hattori
PDF
演習:プログラミング言語処理をやってみよう (ver.1.01)
by
Takashi Ishio
PDF
チューリング・マシンとコンピュータ工学
by
Junpei Tsuji
PPT
アルゴリズムとデータ構造2
by
Kenta Hattori
PPTX
演習:プログラミング言語処理をやってみよう
by
Takashi Ishio
PEGの回文っぽいExpression
by
Sosuke MORIGUCHI
[Basic 12] 関数型言語 / 型理論
by
Yuto Takei
正規表現と正規言語
by
Hideaki Miyake
形態素解析の過去・現在・未来
by
Preferred Networks
アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数・文字列探索・簡単なソート]
by
hixi365
コンピュータシステムの理論と実装10
by
Yoko Yama
深層学習時代の自然言語処理
by
Yuya Unno
Design by contractとホーア論理
by
Takuya Matsunaga
TAPL 勉強会(紹介編)
by
none_toka
AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜
by
Ryoma Sin'ya
20150903 jasis2015 生島
by
Takahiro Ikushima
TAPL勉強会 第1章 (2012-07-17)
by
none_toka
2013computer s1
by
munich1502
文法圧縮入門:超高速テキスト処理のためのデータ圧縮(NLP2014チュートリアル)
by
Shirou Maruyama
Grammatical inference メモ 1
by
Keisuke OTAKI
言語処理系入門10
by
Kenta Hattori
演習:プログラミング言語処理をやってみよう (ver.1.01)
by
Takashi Ishio
チューリング・マシンとコンピュータ工学
by
Junpei Tsuji
アルゴリズムとデータ構造2
by
Kenta Hattori
演習:プログラミング言語処理をやってみよう
by
Takashi Ishio
More from Yuto Takei
PDF
51% 攻撃の原理とシミュレーション
by
Yuto Takei
PDF
これから始めるAzure Kubernetes Service入門
by
Yuto Takei
PDF
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
by
Yuto Takei
PDF
開発チームにおける多様性のススメ
by
Yuto Takei
PDF
ブロックチェーン神話に迫る - 本当に使える? 使えない?
by
Yuto Takei
PDF
ブロックチェーン技術者が夢見る未来
by
Yuto Takei
PDF
ブロックチェーン技術の課題と社会応用
by
Yuto Takei
PDF
Windows コンテナを AKS に追加する
by
Yuto Takei
PDF
ブロックチェーンの不動産登記への応用に関する検討
by
Yuto Takei
PDF
51% 攻撃の原理とシミュレーション
by
Yuto Takei
PDF
[Intermediate 04] ブロックチェーンの動作原理
by
Yuto Takei
PDF
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
by
Yuto Takei
PDF
[Intermediate 02] シェルの使い方 / Git, GitHub について
by
Yuto Takei
PDF
[Intermediate 01] イントロダクション / Bitcoin を動作させる
by
Yuto Takei
PDF
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
by
Yuto Takei
PDF
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
by
Yuto Takei
PDF
[Basic 13] 型推論 / 最適化とコード出力
by
Yuto Takei
PDF
[Basic 9] 並列処理 / 排他制御
by
Yuto Takei
PDF
[Basic 8] プロセスとスレッド / 入出力 / シェル
by
Yuto Takei
PDF
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
by
Yuto Takei
51% 攻撃の原理とシミュレーション
by
Yuto Takei
これから始めるAzure Kubernetes Service入門
by
Yuto Takei
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
by
Yuto Takei
開発チームにおける多様性のススメ
by
Yuto Takei
ブロックチェーン神話に迫る - 本当に使える? 使えない?
by
Yuto Takei
ブロックチェーン技術者が夢見る未来
by
Yuto Takei
ブロックチェーン技術の課題と社会応用
by
Yuto Takei
Windows コンテナを AKS に追加する
by
Yuto Takei
ブロックチェーンの不動産登記への応用に関する検討
by
Yuto Takei
51% 攻撃の原理とシミュレーション
by
Yuto Takei
[Intermediate 04] ブロックチェーンの動作原理
by
Yuto Takei
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
by
Yuto Takei
[Intermediate 02] シェルの使い方 / Git, GitHub について
by
Yuto Takei
[Intermediate 01] イントロダクション / Bitcoin を動作させる
by
Yuto Takei
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
by
Yuto Takei
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
by
Yuto Takei
[Basic 13] 型推論 / 最適化とコード出力
by
Yuto Takei
[Basic 9] 並列処理 / 排他制御
by
Yuto Takei
[Basic 8] プロセスとスレッド / 入出力 / シェル
by
Yuto Takei
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
by
Yuto Takei
[Basic 10] 形式言語 / 字句解析
1.
第10回 形式言語理論 1. 形式言語とは 2. 字句解析 1 Introduction
to Automata Theory, Languages, and Computation John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman (著) ISBN: 9780321455369 画像は https://www.amazon.co.jp/dp/0321455363 より引用
2.
10-1形式言語とは 2
3.
形式言語とは あるアルファベット Σ の上で、ある定められた文法によって規定される記号列の集合の こと。文法には次のような種類がある ●
正則表現 (Regular Expression) ● 文脈自由文法 (Context-Free Grammar) ● 文脈依存文法 (Context-Dependent Grammar) ここでいうアルファベットとは、文法で利用できる記号 (トークン) のこと アルファベットの例: ● 0-9, “-” … 電話番号 ● 0-9, a-z, A-Z, その他の記号 … プログラミング言語で用いるアルファベット 3
4.
形式言語を学ぶ意義 コンパイラの手順には ● 字句解析 (Lexical
Analysis) ● 構文解析 (Syntactic Analysis) ● 中間言語生成 (Intermediate Language Generation) ● 最適化 (Optimization) ● コード出力 (Code Emit) などの複数のプロセスが存在する 形式言語がかかわる分野 4
5.
計算機が言語を解釈するには ● 字句解析 (Lexical
Analysis) 文字列を先頭から解釈しトークン (意味のある単語) として判断していく処理 ● 構文解析 (Syntactic Analysis) 字句解析が終わった後、トークン列になった文字列に対し、文法を解釈し n e w KEYWORD(New) n e w IDENT(news)s KEYWORD(IF) LPR IDENT RPR LBR IfStatement ... ( LPR 5 IDENT
6.
逆ポーランド記法 (RPN) 二項演算子からなる式について、演算子の優先順位を考慮しなくてもよい文法。後置記 法とも DFS で構文木を訪問したとき、帰りがけ順で見ていくと、RPN
になる ポーランド記法 + * 5 4 / - 3 2 1 中置記法 5 * 4 + (3 - 2) / 1 逆ポーランド記法 5 4 * 3 2 - 1 / + 3 2 - 15 4 /* + 6
7.
RPN における計算 逆ポーランド記法における計算は、スタック マシンを利用する 被演算子を読んだらスタックに
push する。演算子を読んだらスタックから pop し、演算 結果を push する。スタックのトップ (一番上) に残った値が計算結果 5 4 * 3 2 - 1 / + 5 5 4 20 20 3 20 3 2 20 1 20 1 1 20 1 21 7
8.
[課題] 中置記法を RPN
に変換する 中置記法で記述されたプログラムを、逆ポーランド記法に変換するプログラムを作成せ よ。次の演算子を用いること: +, -, *, /, ^ (加減乗除および累乗) また、逆ポーランド記法で変換された数式について、その値を計算せよ 8
9.
バッカス・ナウア記法 (BNF) バッカス・ナウア記法 (Backus-Naur
form, BNF) は、プログラミング言語などの構文を 表すのに頻繁に用いる表現方法の一種。導出規則を用いて、トークンの定義を再帰的 に行う <func-decl> ::= <type-name> <identifier> "(" <parameters> ")" <block> <parameters> ::= <parameter> | <parameters> "," <parameter> <parameter> ::= <type-name> <identifier> <block> ::= "{" <block> "}" … RFC や ASN.1 などでも、BNF やそれに類似された記法を用いて文法を定義する 9
10.
導出木 (Derivation Tree) BNF
のように、導出規則を用いて定義する言語の場合、その導出関係を木構造にて描 画することができる func-decl type-name identifier parameters parameters parameter parameters parameter block block statement identifier operator statement identif 10
11.
あいまいな文法 あいまいな文法も存在する。 異なる解釈が存在した場合に、 どちらを優先させるかのルール を作成することが重要である 例: S → T
| x T → S + S S T T x x x S T x T x x 11
12.
あいまいな文法 1. 演算子の優先順位による解決 S →
T | x T → S + S | S * S に対して x + x * x を入力した場合 * の優先順位を高くするなどの対応が必要 2. 最長マッチによる解決 Cond → if X then X | if X then X else X に対して次の入力をした場合 if A then if B then C else D 12
13.
10-2字句解析 13
14.
有限オートマトン (Finite Automaton,
FA, DFA) 有限状態機械 (FSM) とも呼ぶ ● 状態の有限集合 Q ● アルファベット ∑ ● 開始状態 q0 ● 終了状態の集合 F ● 状態遷移関数 δ(q,x) = q’ によって定義される 慣習的に、初期状態は入り矢印で、終状態は二重円で示す 例 (3 の倍数を受理するオートマトン ) Q = { q0 ,q1 ,q2 } ∑ = { 0,1 } F = { q0 } δ(q0 ,0) = q0 δ(q0 ,1) = q1 δ(q1 ,0) = q2 δ(q1 ,1) = q0 δ(q2 ,0) = q1 δ(q2 ,1) = q2 q2 q0 q1 1 01 01 0 14
15.
ある言語 L が有限オートマトン
A によって受理されるとは、集合 L に属する任意の文 字列 x を A から遷移させた結果、A の終状態に遷移することを言う 言語の受理 q0 F 携帯電話番号を受理するオートマトン (例): 0 0-9 0-9 0-9 0-9 0-9 1-9,- - - - - - - 15 E 0-9,- 0-9,-
16.
非決定性有限オートマトン (NFA) ある状態から別の状態への遷移規則が複数存在するような有限オートマトンのことを非 決定性有限オートマトン (NFA)と呼ぶ。NFA
は容易に DFA に変換可能 q1 1 q0 0 0,1 0 0 0 1 0 16 1 {q0 } {q1 } {q0 , q1 } 変換 1
17.
1 ε 動作付き非決定性有限オートマトン (ε-NFA) 長さ
0 の文字列のことを空言と呼び、便宜上 ε という記号にて定義する。NFA のうち、ε による遷移 (ε 遷移) を持つものを ε 動作付き非決定性有限オートマトン (ε-NFA) と呼 ぶ。ε-NFA は容易に DFA に変換可能 q1 ε q0 0 0,1 0 0 17 {q1 } 変換 {q0 , q1 } 1 0
18.
正則表現 (Regular Expression) あるアルファベット
∑ 上に、次の 5 つの記号を加えた文法。正規表現とも ● Φ : 空文字列 ● + : 正則表現の選択 ● * : 正則表現の繰り返し ● ( ) : それぞれ正則表現を括るための記号 プログラミングで用いる正規表現と呼ぶものと文法が異なるので注意 18
19.
正則表現の ε-NFA への変換 1.
Φ 2. a 3. ab 4. a+b 5. a* a a b ε ε ε a b ε εε ε a ε ε ε 19
20.
第10回 まとめ 1. 形式言語とは ●
計算機による言語の解釈について ● コンパイラにおけるプロセス: 字句解析, 構文解析 ● 導出木, あいまいな文法 2. 字句解析 ● 有限オートマトン (DFA) ● 言語の受理 ● 非決定性有限オートマトン (NFA), ε 動作付き NFA (ε-NFA) ● 正則表現 20
Download