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
Building fast VMs quickly
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Alex Gaynor
April 14, 2012
Programming
560
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Building fast VMs quickly
Alex Gaynor
April 14, 2012
More Decks by Alex Gaynor
See All by Alex Gaynor
Quantifying Memory Unsafety and Reactions to It
alex
0
150
Learning from Failure: Post-mortems
alex
2
370
The cobbler's children have no shoes, or building better tools for ourselves
alex
1
300
Techniques for Debugging Hard Problems
alex
1
660
Building Communities with Code Review
alex
4
350
Documenting Domain Specific Knowledge
alex
1
440
Pickles are for Delis, not for Software
alex
0
570
Code Review in Open Source Software
alex
4
830
Why Ruby isn't slow
alex
10
3.9k
Other Decks in Programming
See All in Programming
アクセシビリティから考える情報設計
high_g_engineer
0
370
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
120
高専キャリア LT 発表内容
crysta1221
6
5.7k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
350
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
390
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
230
Jetpack Compose メカニズム
skydoves
0
400
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
460
Go のフラットな パッケージに 「ファイル単位の private」を 〜Linter “declscope” を作った話〜
mpyw
0
280
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
490
AI × TiDD / 2026.09.05 Redmine 大阪
tokudiro
1
150
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
460
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.5k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
850
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
540
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
240
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
580
Building an army of robots
kneath
306
46k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
420
Site-Speed That Sticks
csswizardry
13
1.5k
Making the Leap to Tech Lead
cromwellryan
135
10k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Transcript
Friday, April 13, 2012
Hit me with questions as we go Friday, April 13,
2012
Building fast VMs quickly Alex Gaynor Friday, April 13, 2012
Building high performance VMs for dynamically typed languages is hard
Friday, April 13, 2012
It doesn’t have to be Friday, April 13, 2012
PyPy A framework for implementing high performance dynamic languages A
Python implementation built on this framework Friday, April 13, 2012
Architecture of a VM Tokenize Parse AST construction Bytecode compilation
Interpretation Friday, April 13, 2012
Let’s build a VM Friday, April 13, 2012
https://bitbucket.org/ alex_gaynor/example-vm/ Friday, April 13, 2012
Our language Approximately a subset of Javascript Variables Floats, bools
Arithmetic if, while, print Friday, April 13, 2012
Lexing and Parsing Write a grammar in EBNF That’s it
Friday, April 13, 2012
AST Construction Take a tree of syntax nodes, turn them
into semantic nodes Friday, April 13, 2012
Bytecode compilation Turn the AST into a bytecode. Friday, April
13, 2012
Object model How you represent your objects. Friday, April 13,
2012
Interpreter Simple bytecode interpreter. Friday, April 13, 2012
RPythonize and JIT Friday, April 13, 2012
That’s all folks! Thanks to Professor Moorthy Everyone in RCOS
Friday, April 13, 2012