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.37
Search
hashimoto-kei
October 01, 2025
Programming
0
86
AkarengaLT vol.37
AkarengaLT vol.37 に登壇した際の資料です。
https://engineercafe.connpass.com/event/366237/
hashimoto-kei
October 01, 2025
Tweet
Share
More Decks by hashimoto-kei
See All by hashimoto-kei
AkarengaLT vol.40
hashimoto_kei
0
53
HajimetenoLT vol.17
hashimoto_kei
1
150
AkarengaLT vol.38
hashimoto_kei
1
200
AkarengaLT vol.36
hashimoto_kei
0
76
AkarengaLT vol.35
hashimoto_kei
0
170
Boast Code Party | RubyKaigi 2025 After Event
hashimoto_kei
2
330
Other Decks in Programming
See All in Programming
Patterns of Patterns
denyspoltorak
0
390
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
1k
これならできる!個人開発のすゝめ
tinykitten
PRO
0
140
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
1
300
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
680
愛される翻訳の秘訣
kishikawakatsumi
3
360
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
230
GoLab2025 Recap
kuro_kurorrr
0
790
認証・認可の基本を学ぼう後編
kouyuume
0
260
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
210
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
140
ThorVG Viewer In VS Code
nors
0
460
Featured
See All Featured
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
180
It's Worth the Effort
3n
187
29k
Marketing to machines
jonoalderson
1
4.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Why Our Code Smells
bkeepers
PRO
340
58k
How Software Deployment tools have changed in the past 20 years
geshan
0
30k
Odyssey Design
rkendrick25
PRO
0
450
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
120
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
130
The World Runs on Bad Software
bkeepers
PRO
72
12k
KATA
mclloyd
PRO
33
15k
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!