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
Building fast VMs quickly
Search
Alex Gaynor
April 14, 2012
Programming
4
540
Building fast VMs quickly
Alex Gaynor
April 14, 2012
Tweet
Share
More Decks by Alex Gaynor
See All by Alex Gaynor
Quantifying Memory Unsafety and Reactions to It
alex
0
79
Learning from Failure: Post-mortems
alex
2
270
The cobbler's children have no shoes, or building better tools for ourselves
alex
1
240
Techniques for Debugging Hard Problems
alex
1
530
Building Communities with Code Review
alex
4
260
Documenting Domain Specific Knowledge
alex
1
340
Pickles are for Delis, not for Software
alex
0
310
Code Review in Open Source Software
alex
4
740
Why Ruby isn't slow
alex
10
3.7k
Other Decks in Programming
See All in Programming
GoとPHPのインターフェイスの違い
shimabox
2
210
Kotlinの開発でも AIをいい感じに使いたい / Making the Most of AI in Kotlin Development
kohii00
4
480
GAEログのコスト削減
mot_techtalk
0
130
Generating OpenAPI schema from serializers throughout the Rails stack - Kyobashi.rb #5
envek
1
340
Djangoアプリケーション 運用のリアル 〜問題発生から可視化、最適化への道〜 #pyconshizu
kashewnuts
1
260
楽しく向き合う例外対応
okutsu
0
580
Rubyで始める関数型ドメインモデリング
shogo_tksk
0
140
密集、ドキュメントのコロケーション with AWS Lambda
satoshi256kbyte
1
210
CI改善もDatadogとともに
taumu
0
180
Django NinjaによるAPI開発の効率化とリプレースの実践
kashewnuts
1
240
新宿駅構内を三人称視点で探索してみる
satoshi7190
2
120
pylint custom ruleで始めるレビュー自動化
shogoujiie
0
140
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
The Invisible Side of Design
smashingmag
299
50k
Being A Developer After 40
akosma
89
590k
Docker and Python
trallard
44
3.3k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
How STYLIGHT went responsive
nonsquared
98
5.4k
It's Worth the Effort
3n
184
28k
Making Projects Easy
brettharned
116
6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
Six Lessons from altMBA
skipperchong
27
3.6k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
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