狠狠撸

狠狠撸Share a Scribd company logo
q0,
q1
● 第10回 P.17 の ε-NFA の変換に誤りがありました
(資料の公開バージョンでは訂正済み)
前回の資料の訂正
q1
ε
q0
0
1
0 1
q0
0
1
0
1
正
誤
1
0
{q1
}
{q0
,
q1
}
1
0
前回からの質問
● 言語と文法の違いは?
○ 文法は形式言語としての具体的な文法定義。言語は文法によって受理される記号列の全体集合。
正則言語といえば、正則文法によって定義された記号列の全体。特に正則文法は DFA に変換で
きるので、ある DFA が受理する記号列すべてが、その文法で受理される言語となる
● 扱った正則言語は、プログラミングで使われる正規表現と同じ能力?
○ 基本的には同じものだが、前方参照や後方参照などは使えない
https://docs.microsoft.com/dotnet/standard/base-types/details-of-regular-expression-behavior
● 演算子の前後に括弧をつける方式はどの言語か?
○ FORTRAN でした
https://en.wikipedia.org/wiki/Operator-precedence_parser#Alternative_methods
2
第11回
形式言語理論
1. 文脈自由文法
2. 構文解析
3. 言語解析プログラミング
Introduction to Automata Theory, Languages, and Computation
John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman (著)
ISBN: 9780321455369
画像は https://www.amazon.co.jp/dp/0321455363 より引用
3
11-1文脈自由文法
4
正則文法の表現能力
正則文法の表現能力には限界がある
正則文法で表せない言語の例:
● アルファベット ∑={ (,) } での言語 L={ (n
)n
| n>0 }
● 開き括弧と閉じ括弧との数の一致
ある言語が正則文法で表せないことは、正則言語の反復補題を用いて示すことができ
る
5
正則言語の反復補題 (Pumping Lemma)
正則言語 L について、ある数 N が存在して、L に属する長さ N 以上の記号列 x を取っ
たとき、次のような条件をみたす x = uvw という分解が存在する
● 1 ≤ |v| ≤ N
● 任意の整数 i ≥ 0 について uvi
w ∈ L
証明の方針
正則な文法は有限オートマトン (DFA) で表すことができた。L を表す DFA を
(∑,Q,q0
,F,δ) とし、N=|Q| として N 以上の長さの L の記号列 x による遷移 (q0
,
..., qn
) を考える。この時、同じ状態 qi
が少なくとも 2 回以上出現する。よって q0
から qi
までの記号列を u、qi
から qi
までを v、qi
から qn
までを w とすれば良い
6
[課題] 反復補題の利用
正則言語の反復補題を用いて、言語 L={ (n
)n
| n>0 } が正則文法で記述できな
いことを背理法で示せ
7
文脈自由文法とは
文脈自由文法 (Context Free Grammar) は、次によって定義される形式文法である
● 終端記号: VT
● 非終端記号: VN
● 開始記号: S
● 生成規則: A → α の集合
A は非終端記号。α は、終端記号および非終端記号からなる記号列
文脈自由文法によって生成される言語を、文脈自由言語という
8
文脈自由文法の例 (1)
アルファベット { a,b } 上での正則表現を表す文脈自由文法は次のように表せる
VT
={ a,b,Φ,+,*,(,) }
VN
= { E }
E → a | b | Φ | E E | E + E | E * | ( E )
開始記号: E
9
文脈自由文法の例 (2)
簡単な数式の文法を定義する文脈自由文法は次のように表せる
VT
= { NUM, IDENT, PLUS, MINUS }
VN
= { Expr, Op, Term }
Expr → Expr Op Expr | LPR Expr RPR | Term
Op → PLUS | MINUS | ASTERISK | SLASH
Term → NUM | IDENT
開始記号: Expr
10
生成規則の正規化
● 開始記号から導出できない非終端記号の排除
● 空語の生成規則の排除
● 単一生成規則の排除
S → a
A → b
S → Ab
A → a | ε
S → a
S → ab | b
S → Ab
A → ε
S → b
S → A
A → Ba
S → Ba
11
Chomsky 標準形
生成規則が次のいずれかの形式の文脈自由文法をチョムスキー標準形という
● A → BC
● A → a
この文法では、有用でない非終端
記号や、ε 生成規則、単一生成規則
は存在しない
A → αβγ
A → αA1
A1
→ βA2
A2
→ γ
A → aB
A → A1
B
A1
→ a
12
文脈自由言語の所属判定問題
ある記号列 x1
x2
...xn
が、文脈自由言語 L に所属するかどうかの判定を、
所属判定問題 (decision problem) と呼ぶ
例
アルファベット { a,b } 上の記号列 baaba は次の生成規則の言語 L に所属するだろ
うか?
S → AB | BC
A → BA | a
B → CC | b
C → AB | a Introduction to Automata Theory, Languages, and Computation
Example 7.34 (P.306) より引用
13
所属判定問題のための動的計画アルゴリズムの一つ
表
を
埋
め
る
方
向
CYK 法
T0,2
T0,1
T0,0
T1,1
T1,0
T2,0
x0
x1
x2
for i = 0...(n-1)
Ti,0
= { A | A → xi
}
for j = 1...(n-1)
for i = 0...(n-j)
Ti,j
= ?
for k = 0...(j-1)
Ti,j
= Ti,j
∪ { A |
A → BC, B ∈ Tik
, C ∈ Ti+k,j-k
}
return S ∈ V0,n-1
T1,2
T2,1
T3,0
x3
T0,3
14
CYK 法の例
baaba
S → AB | BC
A → BA | a
B → CC | b
C → AB | a
S,A,C
?
?
S,A
B
S,A,C
B
B
A,C
B
S,C
A,C
S,A
B A,C
b a a b a
Introduction to Automata Theory, Languages, and Computation
Example 7.34 (P.306) より引用
開始記号を含んでいれば
導出が可能表
を
埋
め
る
方
向
15
正則言語と文脈自由文法
正則文法で表される言語は、文脈自由文法によっても記述することができる
a A → a
a b
A → aB
B → b
Φ A → ε
a+b A → a | b
a*
A → ε | A’
A’ → a | aA’
16
LL(1) 文法か否かの判定 - 事前定義
ある CFG が LL(1) 文法であるかどうかの判定にあたり、次の定義を行う
● First(α) = { a | α ?*
a… }
ある記号列 α の最初の記号になりうる終端記号の集合。α ?* ε なら ε を含む
● Follow(A) = { a | S ?*
…Aa… }
開始記号から導出したときに A の次になりうる終端記号の集合
● Director(A, α) = { a | a ∈ First(α) または
α ?*
ε なら a ∈ Follow(A) }
生成規則 A → α がある時、A の最初でとりうる終端記号の集合
17
正則言語と文脈自由文法
正則文法は、右正則文法もしくは左正則文法に変換できる
右正則文法の生成規則:
● A → ε
● A → a
● A → aB
左正則文法の生成規則:
● A → ε
● A → a
● A → Ba
18
文脈自由文法の表現能力
文脈自由文法の表現能力には限界がある
文脈自由文法で表せない言語の例:
● L={ an
bn
cn
| n>0 }
● L={ ap
| p は素数 }
ある言語が文脈自由文法で表せないことは、文脈自由言語の反復補題を用いて示すこ
とができる
19
文脈自由言語 L について、ある数 N が存在して、L に属する長さ N 以上の記号列 z
に対して、次のような条件をみたす x = uvwxy という分解が存在する
● 1 ≤ |vx|
● |vwx| ≤ N
● 任意の整数 i ≥ 0 について uvi
wxi
y ∈ L
証明の方針
文脈自由文法は Chomsky 標準形で表すことができた。L を表す Chomsky 標準形の
CFG を (VT
,VN
,S,P) とし、N=|V| として 2N
以上の長さの L の記号列 x の導出木を
考える。この時、導出木は二分木であり、深さは N + 1 以上であるから根までのパスに
同じ非終端記号がある。残りは正則言語の反復補題と同様
文脈自由文法の反復補題
20
[課題] 反復補題の利用
文脈自由言語の反復補題を用いて、言語 L={ an
bn
cn
| n>0 } が文脈自由文法で
記述できないことを背理法で示せ
21
11-2構文解析
22
下向き構文解析法
入力された記号列について CFG の開始記号から生成規則に当てはめて解釈を試みる
方式。読み込みプログラムは、CFG の生成規則に沿ったものとなる
S → A B a
A → B c
...
void S() {
A();
B();
Read('a');
}
void A() {
B();
Read('c');
}
...
S
A B a
B c
実装
23
バックトラック
生成規則によっては、いったん読んだあとに別の生成規則で読み直す必要がある
S → a A c
A → b | c
...
S
a A c
b
void A() {
Read('b');
-- or --
Read('c');
}
実装
S
a A c
c
失敗したら
24
左再帰性
生成規則が再帰的であると、無限の再帰呼び出しになることがある
A → A b | a void A() {
A();
Read('b');
-- or --
Read('a');
}
A
A b
実装
A b
25
左再帰性の除去
直接左再帰性については、生成規則の書き換えによって対応することができる
A → A α | β βα, βαα, βααα, ...
展開すると...
A → β A’
A’ → αA’ | ε
左再帰排除のため
生成規則を書き換え
void A() {
Read('β');
A’();
}
void A’() {
Read('α');
A’();
...
}
実装
26
LL(1) 構文解析法
プログラムを先頭から解釈していき、読み取った終端記号に合わせて導出規則を推測し
ていく下向き構文解析を行う方法。LL(1) 構文解析法が適用できる文法を LL(1) 文法と
呼ぶ
● 左から右への走査 (Left-to-Right scanning)
● 左端導出 (Leftmost derivation)
● 1 トークン先読み (1-token lookahead)
一般的に、k トークンまで先読みをすれば、良いのが LL(k) 文法
27
LL(1) 文法か否かの判定
ある CFG の任意の非終端記号 N の生成規則 N → α1
| α2
| … | αn
について
1 ≤ i < j ≤ n のとき
Director(N,αi
) ∩ Director(N,αj
) = ?
であれば、その文法は LL(1) 文法である。すなわち、1 つ次のトークンを読めば、どの
生成規則を用いれば良いかが確定する
28
上向き構文解析法
入力された記号列について、1 文字ずつ読み (Shift) ながら生成規則をたどり、非終端
記号に還元 (Reduce) していく方式。最終的に開始記号までたどり着けるように還元を
行う
E → E + T | T
T → T * F | F
F → (E) | i
T F*
E
i + (i* i
F F F
E + ( F これから読む部分
+ i ) * i
左から右への走査
29
LR 構文解析法
LR 構文解析法では、次に読む文字と還元できる生成規則とを同時に管理する
● 左から右への走査 (Left-to-Right scanning)
● 左端導出 (Rightmost derivation)
コンパイラの構成と最適化
文法 G1 (P.93) より引用
E → E + T
E → T
T → T * F
T → F
F → (E)
F → i
S → E $
E → E + T
E → T
T → T * F
T → F
F → (E)
F → i
S → ● E $
E → ● E + T
E → ● T
T → ● T * F
T → ● F
F → ● (E)
F → ● i
便宜上
開始記号を
新たに作る シフト位置
を記載した
マークを
付与する
30
LR 構文解析法
1. 開始の生成規則 S → E $ を便宜上加え、$ を入力の最後に読み取ることとする
2. シフト位置を ● 記号にて示す。最初にS → ● E $ として、非終端記号をすべて展開しながら(た
とえば E → ● E + T を加える)、次に読み取る記号についての閉包(Closure) を作成する
3. シフト位置の次にある記号すべてについて、読み取ったあとの状態から、ふたたび閉包を作成
する。既存の閉包と同じ状態になった場合は同一としてみなす
4. 閉包それぞれをオートマトンの状態として定義し、読み取るべき文字を遷移規則とする
5. スタックを用意し、開始状態から記号を一つずつ読んでいきシフトした場合にはスタックへプッ
シュ、還元する場合にはスタックからポップする
31
S → E $ ●
S → ● E $
E → ● E + T
E → ● T
T → ● T * F
T → ● F
F → ● ( E )
F → ● i
E
T
F
(
i
$
+
T
*
F
)
+
(
(
i
F
*
TF
E
i
F → i ● #
T → F ● #
E → T ● #
T → T ● * F
S → E ● $
E → E ● + T
F → ( E ● )
E → E ● + T
E → E + ● T
T → ● T * F
T → ● F
F → ● ( E )
F → ● i
T → T * ● F
F → ● ( E )
F → ● i
T → T * F ● #
F → ( E ) ● #
E → E + T ● #
T → T ● * F
● は読み取り位置の記号
# は次に還元することを示す
(
F → ( ● E )
E → ● E + T
E → ● T
T → ● T * F
T → ● F
F → ● ( E )
F → ● i
i
32
コンフリクト
場合によっては、次の記号を読み取るべきか還元すべきか定まらない場合がある (Shift
/ Reduce コンフリクト)。また、還元すべきルールが複数ある場合もある (Reduce /
Reduce コンフリクト)
このような場合の先読みの方法に応じて、複数の手法がある (詳細は触れない)
● SLR(1) … 還元の際に 1 文字先読み
● LR(1) … 生成規則の Follow で 1 文字先読み
● LALR(1) … LR(1) の状態数圧縮
E → T ● #
T → T ● * F
33
11-3言語解析プログラミング
34
Lexer と Parser
プログラミングする場合には、実際には字句解析と構文解析を同時に行うことがほとん
どである。そして、解析コードは自動生成することがほとんどである
● Lexer … 字句解析用コードの自動生成ツール (トークン アナライザ)
● Parser … 構文解析用コードの自動生成ツール (パーサー ジェネレータ)
35
Lex, Yacc
Unix 向けのトークン アナライザおよび
パーサー ジェネレータ
Berkley Yacc は LALR 法による構文解析を行う
画像は https://www.amazon.co.jp/dp/B009THDEBC より引用
36
Flex, Bison
それぞれ GNU 版での置き換え
Flex ← Lex
Bison ← Berkeley Yacc
画像は https://www.amazon.co.jp/dp/B0043D2DYQ より引用
37
ANTLR
今回は ANTLR を用いる http://www.antlr.org/
● Java が実行に必要
C# の場合は
● Antlr4 パッケージを Nuget からインストール
● Visual Studio 2015 までの場合、公式拡張プラグインあり
38
文法の記述
Combined 文法 (Parser / Lexer を同一ファイルに記述)
grammar Calc;
expr
: expr PLUS expr #addExpr
| LPR expr RPR #parExpr
| NUMBER #numExpr
;
WS : ' ' -> channel(HIDDEN);
fragment DIGIT : [0-9];
LPR : '(';
RPR : ')';
PLUS : '+';
NUMBER : DIGIT+;
39
訪問ルールの記述
各パーサーのルールについて、読み込んだトークンおよび生成規則から値を作る
処理を行う
public override int VisitAddExpr(
CalcParser.AddExprContext context)
{
return
Visit(context.expr(0)) +
Visit(context.expr(1));
}
40
簡単な数式の計算
ソースコードは
https://gist.github.com/yutopio/3c127ac047011ef05fadded2385c34a7
41
抽象文法木 (AST)
コンパイラでは構文木を訪問する場合には、コンパイラ内部で最適化などのためのデー
タ構造に変換することがある
subExpr:
| literal { Const($1) }
| IDENT { Value(Name $1) }
;
expr:
| subExpr { $1 }
| expr PLUS expr { Add($1, $3) }
| MINUS expr { match $2 with
| Const(Int x) -> Const(Int (-x))
42
[課題] 文法の定義
以下に示すような論理演算、整数演算が可能な文法定義をせよ。
V → true | false
V → 整数値 (-1000 から 1000 まで)
E → V | (E) |
E + E | E - E | E * E | E / E |
E & E | E | E | E = E | E <> E
Cond → if E then E else E
43
第11回 まとめ
1. 文脈自由文法
● 正則文法の反復補題
● 文脈自由文法の導入 / Chomsky 標準形
● 所属判定問題 / CYK 法
● 文脈自由文法の反復補題
2. 構文解析
● 下向き構文解析: LL(1) 構文解析法 / バックトラック / 左再帰問題
● 上向き構文解析: LR(0) 構文解析法 / コンフリクト
3. 言語解析プログラミング
● トークン アナライザとパーサー ジェネレータ
44

More Related Content

What's hot (20)

事业成长にコミットするエンシ?ニア组织への道のり
事业成长にコミットするエンシ?ニア组织への道のり事业成长にコミットするエンシ?ニア组织への道のり
事业成长にコミットするエンシ?ニア组织への道のり
Recruit Lifestyle Co., Ltd.
?
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
?
こんなに使える!今どきの础笔滨ドキュメンテーションツール
こんなに使える!今どきの础笔滨ドキュメンテーションツールこんなに使える!今どきの础笔滨ドキュメンテーションツール
こんなに使える!今どきの础笔滨ドキュメンテーションツール
dcubeio
?
时を超えた越境への道
时を超えた越境への道时を超えた越境への道
时を超えた越境への道
toshihiro ichitani
?
深层强化学习と実装例
深层强化学习と実装例深层强化学习と実装例
深层强化学习と実装例
Deep Learning Lab(ディープラーニング?ラボ)
?
画像认识モデルを作るための鉄板レシピ
画像认识モデルを作るための鉄板レシピ画像认识モデルを作るための鉄板レシピ
画像认识モデルを作るための鉄板レシピ
Takahiro Kubo
?
2022ふりかえりカンファレンス.辫诲蹿
2022ふりかえりカンファレンス.辫诲蹿2022ふりかえりカンファレンス.辫诲蹿
2022ふりかえりカンファレンス.辫诲蹿
Shigeo Konno
?
ソフトウェア開発を加速させるリーン開発の原則 公開用
ソフトウェア開発を加速させるリーン開発の原則 公開用ソフトウェア開発を加速させるリーン開発の原則 公開用
ソフトウェア開発を加速させるリーン開発の原則 公開用
ESM SEC
?
テストとリファクタリンク?に関する深い方法論 #wewlc_jp
テストとリファクタリンク?に関する深い方法論 #wewlc_jpテストとリファクタリンク?に関する深い方法論 #wewlc_jp
テストとリファクタリンク?に関する深い方法論 #wewlc_jp
kyon mm
?
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
?
Pull Request & TDD 入門
Pull Request & TDD 入門Pull Request & TDD 入門
Pull Request & TDD 入門
ESM SEC
?
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
catupper
?
5分で分かるアジャイルムーブメントの歴史 拡大版
5分で分かるアジャイルムーブメントの歴史 拡大版5分で分かるアジャイルムーブメントの歴史 拡大版
5分で分かるアジャイルムーブメントの歴史 拡大版
Fumihiko Kinoshita
?
enterprise agile lean modeling
enterprise agile lean modelingenterprise agile lean modeling
enterprise agile lean modeling
Kenji Hiranabe
?
BigQuery で 150万円 使ったときの話
BigQuery で 150万円 使ったときの話BigQuery で 150万円 使ったときの話
BigQuery で 150万円 使ったときの話
itkr
?
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイドアジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイド
Hiroyuki Ito
?
厂辞濒谤と贰濒补蝉迟颈肠蝉别补谤肠丑を比べてみよう
厂辞濒谤と贰濒补蝉迟颈肠蝉别补谤肠丑を比べてみよう厂辞濒谤と贰濒补蝉迟颈肠蝉别补谤肠丑を比べてみよう
厂辞濒谤と贰濒补蝉迟颈肠蝉别补谤肠丑を比べてみよう
Shinsuke Sugaya
?
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
?
ドメイン駆动设计に15年取り组んでわかったこと
ドメイン駆动设计に15年取り组んでわかったことドメイン駆动设计に15年取り组んでわかったこと
ドメイン駆动设计に15年取り组んでわかったこと
増田 亨
?
フ?ロタ?クトの强い轴を作るフ?ロタ?クトマネシ?メントフレームワーク
フ?ロタ?クトの强い轴を作るフ?ロタ?クトマネシ?メントフレームワークフ?ロタ?クトの强い轴を作るフ?ロタ?クトマネシ?メントフレームワーク
フ?ロタ?クトの强い轴を作るフ?ロタ?クトマネシ?メントフレームワーク
kumiko koshiro
?
事业成长にコミットするエンシ?ニア组织への道のり
事业成长にコミットするエンシ?ニア组织への道のり事业成长にコミットするエンシ?ニア组织への道のり
事业成长にコミットするエンシ?ニア组织への道のり
Recruit Lifestyle Co., Ltd.
?
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
?
こんなに使える!今どきの础笔滨ドキュメンテーションツール
こんなに使える!今どきの础笔滨ドキュメンテーションツールこんなに使える!今どきの础笔滨ドキュメンテーションツール
こんなに使える!今どきの础笔滨ドキュメンテーションツール
dcubeio
?
画像认识モデルを作るための鉄板レシピ
画像认识モデルを作るための鉄板レシピ画像认识モデルを作るための鉄板レシピ
画像认识モデルを作るための鉄板レシピ
Takahiro Kubo
?
2022ふりかえりカンファレンス.辫诲蹿
2022ふりかえりカンファレンス.辫诲蹿2022ふりかえりカンファレンス.辫诲蹿
2022ふりかえりカンファレンス.辫诲蹿
Shigeo Konno
?
ソフトウェア開発を加速させるリーン開発の原則 公開用
ソフトウェア開発を加速させるリーン開発の原則 公開用ソフトウェア開発を加速させるリーン開発の原則 公開用
ソフトウェア開発を加速させるリーン開発の原則 公開用
ESM SEC
?
テストとリファクタリンク?に関する深い方法論 #wewlc_jp
テストとリファクタリンク?に関する深い方法論 #wewlc_jpテストとリファクタリンク?に関する深い方法論 #wewlc_jp
テストとリファクタリンク?に関する深い方法論 #wewlc_jp
kyon mm
?
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
?
Pull Request & TDD 入門
Pull Request & TDD 入門Pull Request & TDD 入門
Pull Request & TDD 入門
ESM SEC
?
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
catupper
?
5分で分かるアジャイルムーブメントの歴史 拡大版
5分で分かるアジャイルムーブメントの歴史 拡大版5分で分かるアジャイルムーブメントの歴史 拡大版
5分で分かるアジャイルムーブメントの歴史 拡大版
Fumihiko Kinoshita
?
enterprise agile lean modeling
enterprise agile lean modelingenterprise agile lean modeling
enterprise agile lean modeling
Kenji Hiranabe
?
BigQuery で 150万円 使ったときの話
BigQuery で 150万円 使ったときの話BigQuery で 150万円 使ったときの話
BigQuery で 150万円 使ったときの話
itkr
?
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイドアジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイド
Hiroyuki Ito
?
厂辞濒谤と贰濒补蝉迟颈肠蝉别补谤肠丑を比べてみよう
厂辞濒谤と贰濒补蝉迟颈肠蝉别补谤肠丑を比べてみよう厂辞濒谤と贰濒补蝉迟颈肠蝉别补谤肠丑を比べてみよう
厂辞濒谤と贰濒补蝉迟颈肠蝉别补谤肠丑を比べてみよう
Shinsuke Sugaya
?
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
?
ドメイン駆动设计に15年取り组んでわかったこと
ドメイン駆动设计に15年取り组んでわかったことドメイン駆动设计に15年取り组んでわかったこと
ドメイン駆动设计に15年取り组んでわかったこと
増田 亨
?
フ?ロタ?クトの强い轴を作るフ?ロタ?クトマネシ?メントフレームワーク
フ?ロタ?クトの强い轴を作るフ?ロタ?クトマネシ?メントフレームワークフ?ロタ?クトの强い轴を作るフ?ロタ?クトマネシ?メントフレームワーク
フ?ロタ?クトの强い轴を作るフ?ロタ?クトマネシ?メントフレームワーク
kumiko koshiro
?

Similar to [Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング (11)

[Basic 10] 形式言語 / 字句解析
[Basic 10] 形式言語 / 字句解析[Basic 10] 形式言語 / 字句解析
[Basic 10] 形式言語 / 字句解析
Yuto Takei
?
言语処理系入门?2
言语処理系入门?2言语処理系入门?2
言语処理系入门?2
Kenta Hattori
?
文法圧缩入门:超高速テキスト処理のためのデータ圧缩(狈尝笔2014チュートリアル)
文法圧缩入门:超高速テキスト処理のためのデータ圧缩(狈尝笔2014チュートリアル)文法圧缩入门:超高速テキスト処理のためのデータ圧缩(狈尝笔2014チュートリアル)
文法圧缩入门:超高速テキスト処理のためのデータ圧缩(狈尝笔2014チュートリアル)
Shirou Maruyama
?
Fast approximate search in large dictionaries
Fast approximate search in large dictionariesFast approximate search in large dictionaries
Fast approximate search in large dictionaries
Yusuke Matsubara
?
言语処理系入门?9
言语処理系入门?9言语処理系入门?9
言语処理系入门?9
Kenta Hattori
?
言语処理系入门?10
言语処理系入门?10言语処理系入门?10
言语処理系入门?10
Kenta Hattori
?
黒い目の大きな女の子:构文から意味へ
黒い目の大きな女の子:构文から意味へ黒い目の大きな女の子:构文から意味へ
黒い目の大きな女の子:构文から意味へ
Hiroshi Nakagawa
?
4thNLPDL
4thNLPDL4thNLPDL
4thNLPDL
Sho Takase
?
言语処理系入门?5
言语処理系入门?5言语処理系入门?5
言语処理系入门?5
Kenta Hattori
?
[Basic 10] 形式言語 / 字句解析
[Basic 10] 形式言語 / 字句解析[Basic 10] 形式言語 / 字句解析
[Basic 10] 形式言語 / 字句解析
Yuto Takei
?
言语処理系入门?2
言语処理系入门?2言语処理系入门?2
言语処理系入门?2
Kenta Hattori
?
文法圧缩入门:超高速テキスト処理のためのデータ圧缩(狈尝笔2014チュートリアル)
文法圧缩入门:超高速テキスト処理のためのデータ圧缩(狈尝笔2014チュートリアル)文法圧缩入门:超高速テキスト処理のためのデータ圧缩(狈尝笔2014チュートリアル)
文法圧缩入门:超高速テキスト処理のためのデータ圧缩(狈尝笔2014チュートリアル)
Shirou Maruyama
?
Fast approximate search in large dictionaries
Fast approximate search in large dictionariesFast approximate search in large dictionaries
Fast approximate search in large dictionaries
Yusuke Matsubara
?
言语処理系入门?9
言语処理系入门?9言语処理系入门?9
言语処理系入门?9
Kenta Hattori
?
言语処理系入门?10
言语処理系入门?10言语処理系入门?10
言语処理系入门?10
Kenta Hattori
?
黒い目の大きな女の子:构文から意味へ
黒い目の大きな女の子:构文から意味へ黒い目の大きな女の子:构文から意味へ
黒い目の大きな女の子:构文から意味へ
Hiroshi Nakagawa
?
言语処理系入门?5
言语処理系入门?5言语処理系入门?5
言语処理系入门?5
Kenta Hattori
?

More from Yuto Takei (20)

51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
Yuto Takei
?
これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門
Yuto Takei
?
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
Yuto Takei
?
开発チームにおける多様性のススメ
开発チームにおける多様性のススメ开発チームにおける多様性のススメ
开発チームにおける多様性のススメ
Yuto Takei
?
ブロックチェーン神話に迫る - 本当に使える? 使えない?
 ブロックチェーン神話に迫る - 本当に使える? 使えない? ブロックチェーン神話に迫る - 本当に使える? 使えない?
ブロックチェーン神話に迫る - 本当に使える? 使えない?
Yuto Takei
?
ブロックチェーン技术者が梦见る未来
ブロックチェーン技术者が梦见る未来ブロックチェーン技术者が梦见る未来
ブロックチェーン技术者が梦见る未来
Yuto Takei
?
ブロックチェーン技术の课题と社会応用
ブロックチェーン技术の课题と社会応用ブロックチェーン技术の课题と社会応用
ブロックチェーン技术の课题と社会応用
Yuto Takei
?
Windows コンテナを AKS に追加する
Windows コンテナを AKS に追加するWindows コンテナを AKS に追加する
Windows コンテナを AKS に追加する
Yuto Takei
?
ブロックチェーンの不动产登记への応用に関する検讨
ブロックチェーンの不动产登记への応用に関する検讨ブロックチェーンの不动产登记への応用に関する検讨
ブロックチェーンの不动产登记への応用に関する検讨
Yuto Takei
?
51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
Yuto Takei
?
[Intermediate 04] ブロックチェーンの動作原理
[Intermediate 04] ブロックチェーンの動作原理[Intermediate 04] ブロックチェーンの動作原理
[Intermediate 04] ブロックチェーンの動作原理
Yuto Takei
?
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
Yuto Takei
?
[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub について[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub について
Yuto Takei
?
[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる
Yuto Takei
?
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
Yuto Takei
?
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
Yuto Takei
?
[Basic 13] 型推論 / 最適化とコード出力
[Basic 13] 型推論 / 最適化とコード出力[Basic 13] 型推論 / 最適化とコード出力
[Basic 13] 型推論 / 最適化とコード出力
Yuto Takei
?
[Basic 12] 関数型言語 / 型理論
[Basic 12] 関数型言語 / 型理論[Basic 12] 関数型言語 / 型理論
[Basic 12] 関数型言語 / 型理論
Yuto Takei
?
[Basic 9] 並列処理 / 排他制御
[Basic 9] 並列処理 / 排他制御[Basic 9] 並列処理 / 排他制御
[Basic 9] 並列処理 / 排他制御
Yuto Takei
?
[Basic 8] フ?ロセスとスレット? / 入出力 / シェル
[Basic 8] フ?ロセスとスレット? / 入出力 / シェル[Basic 8] フ?ロセスとスレット? / 入出力 / シェル
[Basic 8] フ?ロセスとスレット? / 入出力 / シェル
Yuto Takei
?
51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
Yuto Takei
?
これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門
Yuto Takei
?
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
Yuto Takei
?
开発チームにおける多様性のススメ
开発チームにおける多様性のススメ开発チームにおける多様性のススメ
开発チームにおける多様性のススメ
Yuto Takei
?
ブロックチェーン神話に迫る - 本当に使える? 使えない?
 ブロックチェーン神話に迫る - 本当に使える? 使えない? ブロックチェーン神話に迫る - 本当に使える? 使えない?
ブロックチェーン神話に迫る - 本当に使える? 使えない?
Yuto Takei
?
ブロックチェーン技术者が梦见る未来
ブロックチェーン技术者が梦见る未来ブロックチェーン技术者が梦见る未来
ブロックチェーン技术者が梦见る未来
Yuto Takei
?
ブロックチェーン技术の课题と社会応用
ブロックチェーン技术の课题と社会応用ブロックチェーン技术の课题と社会応用
ブロックチェーン技术の课题と社会応用
Yuto Takei
?
Windows コンテナを AKS に追加する
Windows コンテナを AKS に追加するWindows コンテナを AKS に追加する
Windows コンテナを AKS に追加する
Yuto Takei
?
ブロックチェーンの不动产登记への応用に関する検讨
ブロックチェーンの不动产登记への応用に関する検讨ブロックチェーンの不动产登记への応用に関する検讨
ブロックチェーンの不动产登记への応用に関する検讨
Yuto Takei
?
51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
Yuto Takei
?
[Intermediate 04] ブロックチェーンの動作原理
[Intermediate 04] ブロックチェーンの動作原理[Intermediate 04] ブロックチェーンの動作原理
[Intermediate 04] ブロックチェーンの動作原理
Yuto Takei
?
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
Yuto Takei
?
[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub について[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub について
Yuto Takei
?
[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる
Yuto Takei
?
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
Yuto Takei
?
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
Yuto Takei
?
[Basic 13] 型推論 / 最適化とコード出力
[Basic 13] 型推論 / 最適化とコード出力[Basic 13] 型推論 / 最適化とコード出力
[Basic 13] 型推論 / 最適化とコード出力
Yuto Takei
?
[Basic 12] 関数型言語 / 型理論
[Basic 12] 関数型言語 / 型理論[Basic 12] 関数型言語 / 型理論
[Basic 12] 関数型言語 / 型理論
Yuto Takei
?
[Basic 9] 並列処理 / 排他制御
[Basic 9] 並列処理 / 排他制御[Basic 9] 並列処理 / 排他制御
[Basic 9] 並列処理 / 排他制御
Yuto Takei
?
[Basic 8] フ?ロセスとスレット? / 入出力 / シェル
[Basic 8] フ?ロセスとスレット? / 入出力 / シェル[Basic 8] フ?ロセスとスレット? / 入出力 / シェル
[Basic 8] フ?ロセスとスレット? / 入出力 / シェル
Yuto Takei
?

[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング