Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
電卓アプリで再帰降下法を使った話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
nakawai
May 27, 2018
390
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
電卓アプリで再帰降下法を使った話
nakawai
May 27, 2018
More Decks by nakawai
See All by nakawai
AI機能プロジェクト炎上の 3つのしくじりと学び
nakawai
0
380
AI駆動プロダクト開発で最速価値検証
nakawai
0
590
エンジニアがエンジニアリングマネージャーになって最初にやったこと
nakawai
1
1.4k
Android+TensorflowでAI画像生成
nakawai
0
85
AndroidでSRCNN(超解像ニューラルネットワーク) 2017
nakawai
0
80
Androidで超解像ニューラルネットワークできる?
nakawai
0
100
Featured
See All Featured
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
620
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
650
Reality Check: Gamification 10 Years Later
codingconduct
0
2.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Optimizing for Happiness
mojombo
378
71k
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
We Are The Robots
honzajavorek
0
430
Producing Creativity
orderedlist
PRO
348
41k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
350
How GitHub (no longer) Works
holman
316
150k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
330
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
電卓アプリで 再帰降下法を使った話 以上