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
AkarengaLT vol.37
Search
hashimoto-kei
October 01, 2025
Programming
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AkarengaLT vol.37
AkarengaLT vol.37 に登壇した際の資料です。
https://engineercafe.connpass.com/event/366237/
hashimoto-kei
October 01, 2025
More Decks by hashimoto-kei
See All by hashimoto-kei
人工衛星開発を支える Grafana
hashimoto_kei
0
160
AkarengaLT vol.43
hashimoto_kei
0
150
Offline Meetup | Fukuoka Rubyist Kaigi 05 Day0
hashimoto_kei
0
130
AkarengaLT vol.41
hashimoto_kei
1
190
AkarengaLT vol.40
hashimoto_kei
0
140
HajimetenoLT vol.17
hashimoto_kei
1
280
AkarengaLT vol.38
hashimoto_kei
1
320
AkarengaLT vol.36
hashimoto_kei
0
150
AkarengaLT vol.35
hashimoto_kei
0
240
Other Decks in Programming
See All in Programming
Zero-Tap Sign-In対応、結局何をすればいいの?
mitohato14
0
1.8k
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
220
Goコンパイラを作ってGoをもっと理解する / Build a Go compiler to better understand Go
ikura_hamu
0
130
高橋メソッドでCVE解説シリーズ 〜CVE-2026-112816〜
hakkadaikon
0
230
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
260
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
360
Web3Dライブラリを作ってVue Custom Rendererの仕組みを理解しよう / lets learn vue custom renderer by making 3d library
drumath2237
1
130
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
240
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
200
LLM 101
dalinaum
0
470
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
180
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.6k
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
187
23k
Thoughts on Productivity
jonyablonski
76
5.5k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
400
Done Done
chrislema
187
17k
エンジニアに許された特別な時間の終わり
watany
109
250k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.3k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Mobile First: as difficult as doing things right
swwweet
225
10k
The Invisible Side of Design
smashingmag
301
52k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
480
Color Theory Basics | Prateek | Gurzu
gurzu
1
510
Transcript
2025/09/28 hashimoto-kei AkarengaLT Vol. 37
ࣗݾհ 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
None
Nand2Tetris
·ͨʁ Again ?
લճͷ࣭ฦ͠ Follow up !
લఏࣝ Background
Compiler v.s. Interpreter
AOT v.s. JIT
Compiler
͋ΔݴޠΛ ผͷݴޠʹม Convert source code into target code
Interpreter
ݴޠΛղऍ࣮ͯ͠ߦ Execute source code
Example
GCC
$ gcc -o hello hello.c $ ./hello
C ݴޠͷίʔυΛ ػցޠʹม Convert C source code into machine code
Ruby
$ ruby hello.rb hello!
Ruby ͷίʔυΛ ղऍ࣮ͯ͠ߦ Execute Ruby source code
ࠞ߹ܕ Hybrid
Java
$ javac Hello.java $ java Hello
$ javac Hello.java $ java Hello
Java ͷίʔυ Λ ΫϥεϑΝΠϧʹม Convert Java source code into Java
class file
$ javac Hello.java $ java Hello
ΫϥεϑΝΠϧΛ ղऍ࣮ͯ͠ߦ Execute Java class file
JVM
2 ஈ֊ͷίϯύΠϧ Compile in 2 steps
Clang
$ gcc -o hello hello.c $ ./hello
None
https://interface.cqpub.co.jp/wp-content/uploads/interface/2015/03/if03_043.pdf
https://prev.rust-lang.org/ja-JP/faq.html
LLVM
https://ja.wikipedia.org/wiki/LLVM
VM
தؒදݱΛղऍ࣮ͯ͠ߦ Execute IR
Rubyͷதͷ༧උࣝ_RubyK a igiͷલʹΓୄʂ_ެ։༻ https://docs.google.com/present a tion/d/1oFvP4W3Ox8uiGXsW a 3ibyDg a 1cpLguVZhwCjpD46hFU/
mobilepresent?slide=id.g3389fccf211_0_100
AOT
࣮ߦલʹ ػցޠʹίϯύΠϧ Ahead-of-time compilation
$ gcc -o hello hello.c $ ./hello
JIT
࣮ߦ࣌ʹ ػցޠʹίϯύΠϧ Just-in-time compilation
Rubyͷதͷ༧උࣝ_RubyK a igiͷલʹΓୄʂ_ެ։༻ https://docs.google.com/present a tion/d/1oFvP4W3Ox8uiGXsW a 3ibyDg a 1cpLguVZhwCjpD46hFU/
mobilepresent?slide=id.g341c11ef11f_0_132
ม͕૿͑ΔͷͰ ͘ͳΔͷͰ…ʁ It seems to get slower because of more
conversions ...?
ಉҰͷॲཧΛ for จͰ Կ࣮ߦ͢Δ߹ͳͲͰ༗ޮ JIT costs some, but it pays
if same IR is executed many times
1.
JVM, LLVM Ҏ֎ͷ VM Λڭ͑ͯʂ Tell me VM other than
JVM, LLVM ?
LLVM ͷ VM Virtual Machine ͷུͰͳ͍ LLVM does not
mean Low Level Virtual Machine
Ruby … YARV / RubyVM Python … PVM PHP …
Zend VM Wasm … wasmtime
2.
Python ʹ JIT ίϯύΠϧ͕ͳ͍ ? Python has NO JIT Compiler
?
https://github.com/python/cpython/blob/m a in/Tools/jit/README.md#user-content-fn- pep-744-23c711528de a 85ce780721e60e9c01b5
CPython 3.13 ͔Β ࣮ݧతʹಋೖ CPython has experimental JIT compiler
since 3.13
3.
JIT ͰͳΜͰ͘ͳΔͷ ? Why does JIT make it faster ?
ࡁ Skip
4.
Nand2Tetris Ͱ࡞Δͷ ίϯύΠϥ/ΠϯλϓϦλʁ Compiler or Interpreter implemented in Nand2Tetris ?
ίϯύΠϥʢAOT/2 ஈ֊ʣ Compiler ( AOT / 2 steps )
https://interface.cqpub.co.jp/wp-content/uploads/interface/2015/03/if03_043.pdf
5.
Java ͕ਤʹग़ͯ͜ͳ͍ ͷͳͥʁ Why isn't Java in the diagram ?
None
͜ͷਤ LLVM ͷΑ͏ͳ ͷΛఆͯ͠ඳ͍͔ͨΒ This diagram is for AOT compiler
6.
C/C++ ίϯύΠϥͷ ϑϩϯτΤϯυͬͯʁ What does mean Frontend for C/C++ Compiler?
https://interface.cqpub.co.jp/wp-content/uploads/interface/2015/03/if03_043.pdf
7.
C/C++ ίϯύΠϥͷ όοΫΤϯυͬͯʁ What does mean Backend for C/C++ Compiler?
https://interface.cqpub.co.jp/wp-content/uploads/interface/2015/03/if03_043.pdf
End ...?
None
Thank you for listening!