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
AkarengaLT vol.38
Search
hashimoto-kei
October 19, 2025
Programming
1
240
AkarengaLT vol.38
AkarengaLT vol.38 に登壇した際の資料です。
https://engineercafe.connpass.com/event/370316/
hashimoto-kei
October 19, 2025
Tweet
Share
More Decks by hashimoto-kei
See All by hashimoto-kei
AkarengaLT vol.43
hashimoto_kei
0
22
Offline Meetup | Fukuoka Rubyist Kaigi 05 Day0
hashimoto_kei
0
73
AkarengaLT vol.41
hashimoto_kei
1
120
AkarengaLT vol.40
hashimoto_kei
0
83
HajimetenoLT vol.17
hashimoto_kei
1
200
AkarengaLT vol.37
hashimoto_kei
0
120
AkarengaLT vol.36
hashimoto_kei
0
98
AkarengaLT vol.35
hashimoto_kei
0
200
Boast Code Party | RubyKaigi 2025 After Event
hashimoto_kei
2
370
Other Decks in Programming
See All in Programming
AHC061解説
shun_pi
0
410
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
530
Feature Toggle は捨てやすく使おう
gennei
0
240
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
780
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
170
Laravel Nightwatchの裏側 - Laravel公式Observabilityツールを支える設計と実装
avosalmon
1
140
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
740
安いハードウェアでVulkan
fadis
0
720
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
13
8.3k
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
360
Everything Claude Code OSS詳細 — 5層構造の中身と導入方法
targe
0
150
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
160
Featured
See All Featured
A Soul's Torment
seathinner
5
2.5k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
220
Building Applications with DynamoDB
mza
96
7k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Test your architecture with Archunit
thirion
1
2.2k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
160
Measuring & Analyzing Core Web Vitals
bluesmoon
9
790
The Curse of the Amulet
leimatthew05
1
10k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
410
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
410
Transcript
2025/10/19 hashimoto-kei AkarengaLT Vol. 38
ࣗݾհ Let me introduce myself.
໊લɿhashimoto-kei name: hashimoto-kei
ग़ɿԬ birthplace: Fukuoka City
ॴଐɿελʔτΞοϓ@Ԭ belong_to: startup at Fukuoka
ݞॻɿݚڀһ position: researcher
ࣄɿΤϯδχΞ work: engineer
ٕज़ελοΫɿPython, AWS technology stack: Python, AWS
͖ͳຊɿNand2Tetris favorite book: Nand2Tetris
None
ࠓͷςʔϚ Today’s theme
͘͠Έ.py
⚙.🐍
Python ͷΈ How Python works
CPython
Python͕ϓϩάϥϜΛ࣮ߦ͢ΔྲྀΕɺ࠷ޙʹʮόΠτίʔυʯ͕ੜ͞ΕΔ https://xtech.nikkei.com/ a tcl/nxt/column/18/02585/092000003/?SS=imgview&FD=1420927604
CRuby
Rubyͷதͷ༧උࣝ_RubyK a igiͷલʹΓୄʂ_ެ։༻ https://docs.google.com/present a tion/d/1oFvP4W3Ox8uiGXsW a 3ibyDg a 1cpLguVZhwCjpD46hFU/
mobilepresent?slide=id.g3389fccf211_0_100
4 components
None
Hands-on
Version
https://www.python.org/downlo a ds/
None
લఏࣝ Background
Modules
Python Language Services
https://docs.python.org/3.13/libr a ry/l a ngu a ge.html
🐍
ࣈ۟ղੳث Lexical Analyzer
None
લఏࣝ Background
ࣈ۟ lexeme
ϓϩάϥϜΛߏ͢Δ࠷খ୯Ґ Minimum unit for program
ࣗવݴޠͷʮ୯ޠʯ Like word in natural language
τʔΫϯ token
จ๏ͷߏ୯Ґ unit for grammar
ࣗવݴޠͷʮࢺʮจܕཁૉʯ Like grammatical element in natural language
ࣈ۟ղੳ Lexical Analysis
ίʔυΛτʔΫϯʹม Convert source code into tokens
https://docs.python.org/3.13/gloss a ry.html#term-token
https://docs.python.org/3.13/gloss a ry.html#term-lexic a l- a n a lyzer
Hands-on
https://docs.python.org/3.13/libr a ry/tokenize.html
None
ߏจղੳث Parser
None
લఏࣝ Background
நߏจ Abstract Syntax Tree
จ๏ߏΛʮʯͰදݱ Represent syntax as tree
ߏจղੳ Parsing
จ๏ϧʔϧΛͱʹ τʔΫϯྻΛ AST ʹม Convert tokens into AST with grammar
Hands-on
https://docs.python.org/3.13/libr a ry/ a st.html
None
None
ίϯύΠϥ Compiler
None
લఏࣝ Background
όΠτίʔυ bytecode
VM ͕࣮ߦͰ͖Δதؒදݱ IR run by Python’s VM
https://docs.python.org/3.13/gloss a ry.html#term-bytecode
Hands-on
https://docs.python.org/3.13/libr a ry/dis.html
None
ԾϚγϯ VM
None
લఏࣝ Background
ԾϚγϯ VM
தؒදݱΛղऍ࣮ͯ͠ߦ͢Δ Execute IR
https://docs.python.org/3.13/gloss a ry.html#term-virtu a l-m a chine
Let’s try !
⚠
1 + 2 * 3
NUMBER (1) PLUS (‘+’) NUMBER (2) MULT (‘*’) NUMBER (3)
EOF (‘’)
จ๏ϧʔϧΛͱʹ τʔΫϯྻΛ AST ʹม Convert tokens into AST with grammar
όοΧεɾφΞه๏ BNF
จ๏Λهड़͢ΔͨΊͷه๏ Notation to define grammar
None
ύʔαδΣωϨʔλ Parser Generator
จ๏ϑΝΠϧΛೖྗ͢Δͱ ύʔαʔΛੜ͢Δ Generate parser with grammar file
LALR (1) Parser
None
None
ਂ͞༏ઌ୳ࡧ/ؼΓ͕͚ॱ DFS / post-order
PUSH 1 PUSH 2 PUSH 3 MULT PLUS POP
ελοΫϚγϯ Stack Machine
PUSH 1 PUSH 2 PUSH 3 MULT PLUS POP =>
PUSH 1 PUSH 2 PUSH 3 MULT PLUS POP =>
1
PUSH 1 PUSH 2 PUSH 3 MULT PLUS POP =>
1 2
PUSH 1 PUSH 2 PUSH 3 MULT PLUS POP =>
1 2 3
PUSH 1 PUSH 2 PUSH 3 MULT PLUS POP =>
1 6
PUSH 1 PUSH 2 PUSH 3 MULT PLUS POP =>
7
PUSH 1 PUSH 2 PUSH 3 MULT PLUS POP =>
1 + 2 * 3
End ...?
None
None
Thank you for listening!