Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
電卓アプリで再帰降下法を使った話
Search
nakawai
May 27, 2018
0
190
電卓アプリで再帰降下法を使った話
nakawai
May 27, 2018
Tweet
Share
More Decks by nakawai
See All by nakawai
エンジニアがエンジニアリングマネージャーになって最初にやったこと
nakawai
2
1.1k
AndroidでTensorflow
nakawai
0
29
テンプレート作ると爆速Android 開発できる?
nakawai
0
22
AndroidでSRCNN 2017
nakawai
0
32
Android開発の罠と、その避け方
nakawai
0
26
AndroidでSRCNNできる?
nakawai
0
49
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
116
7.1k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Producing Creativity
orderedlist
PRO
343
39k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.7k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Gamification - CAS2011
davidbonilla
80
5.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Building Your Own Lightsaber
phodgson
104
6.2k
For a Future-Friendly Web
brad_frost
176
9.5k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Transcript
電卓アプリで 再帰下降構文解析を 使った話 かものはし 2018/5/27 @kawai
どんな電卓?
デモ
1. 式の計算 2. 式の編集 3. 式の参照 要件
行計算できる 電卓
「式」の計算
“3+4” ↓ 3 + 4 ↓ 7
“√4+(3-15)” ↓ √4+(3-15) ↓ 2+-12
“100+8%” ↓ 100+(100×0.08) ↓ 100+8
“100×÷8” ↓ 無効な式
構文解析が必要
式の文字列から結果を導くには 1. トークンに分解 2. 処理用にパース 3. パース結果を処理
↑をトークンに分解 √4+(3-15)
√4+(3-15) 4 √ + - 3 15 ) (
処理用にパース
アルゴリズム
・操車場アルゴリズム(Shunting Yard Algorithm ) 中置 → 後置(逆ポーランド記法) ・再帰降下法 中置 → 構文木 → 評価
- 3 5 - 3 5 - 3 5 操
車 場 再帰降下法
- 3 15 4 √ + - 3 15 )
( √ 4 +
実装など
Evaluater Parser Tokenizer ParserTest EvaluaterTest Unit Test TokenizerTest Core Logic
電卓アプリで 再帰降下法を使った話 以上