$30 off During Our Annual Pro Sale. View Details »
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
76
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
HajimetenoLT vol.17
hashimoto_kei
1
100
AkarengaLT vol.38
hashimoto_kei
1
170
AkarengaLT vol.36
hashimoto_kei
0
69
AkarengaLT vol.35
hashimoto_kei
0
170
Boast Code Party | RubyKaigi 2025 After Event
hashimoto_kei
2
310
Other Decks in Programming
See All in Programming
DSPy Meetup Tokyo #1 - はじめてのDSPy
masahiro_nishimi
1
150
CSC509 Lecture 14
javiergs
PRO
0
220
社内オペレーション改善のためのTypeScript / TSKaigi Hokuriku 2025
dachi023
1
480
Evolving NEWT’s TypeScript Backend for the AI-Driven Era
xpromx
0
260
Module Harmony
petamoriken
2
610
目的で駆動する、AI時代のアーキテクチャ設計 / purpose-driven-architecture
minodriven
11
3.9k
Reactive Thinking with Signals and the new Resource API
manfredsteyer
PRO
0
160
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
180
手が足りない!兼業データエンジニアに必要だったアーキテクチャと立ち回り
zinkosuke
0
380
堅牢なフロントエンドテスト基盤を構築するために行った取り組み
shogo4131
6
1.9k
AWS CDKの推しポイントN選
akihisaikeda
1
240
How Software Deployment tools have changed in the past 20 years
geshan
0
28k
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
How to Ace a Technical Interview
jacobian
280
24k
KATA
mclloyd
PRO
32
15k
Faster Mobile Websites
deanohume
310
31k
How to Think Like a Performance Engineer
csswizardry
28
2.3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Building Adaptive Systems
keathley
44
2.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
The Pragmatic Product Professional
lauravandoore
37
7.1k
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!