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
fukuoka.rb#202 RustでつくるRuby
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
monochrome
March 24, 2021
Programming
870
1
Share
fukuoka.rb#202 RustでつくるRuby
monochrome
March 24, 2021
More Decks by monochrome
See All by monochrome
Improving my own Ruby thereafter
sisshiki1969
1
220
あなたとJIT, 今すぐアセンブ ル
sisshiki1969
1
990
Improve my own Ruby
sisshiki1969
1
530
My own Ruby, thereafter
sisshiki1969
0
380
Running Optcarrot (faster) on my own Ruby.
sisshiki1969
1
300
仮想マシンにおけるスタックの管理
sisshiki1969
0
230
Rustでゴミ集め
sisshiki1969
1
370
RustでつくるRubyのFiber
sisshiki1969
0
310
Shinjuku.rs#15 Rustでつくるx86アセンブラ
sisshiki1969
0
1.7k
Other Decks in Programming
See All in Programming
ハーネスエンジニアリングとは?
kinopeee
11
5.8k
2026_04_15_量子計算をパズルとして解く
hideakitakechi
0
110
CDK Deployのための ”反響定位”
watany
5
800
The Monolith Strikes Back: Why AI Agents ❤️ Rails Monoliths
serradura
0
340
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
16
5.6k
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
4
3k
Kingdom of the Machine
yui_knk
2
670
iOS機能開発のAI環境と起きた変化
ryunakayama
0
190
NakouPAY説明用
annouim0
0
250
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
280
10 Tips of AWS ~Gen AI on AWS~
licux
5
430
Coding at the Speed of Thought: The New Era of Symfony Docker
dunglas
0
5k
Featured
See All Featured
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
260
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Designing for Timeless Needs
cassininazir
0
200
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
Context Engineering - Making Every Token Count
addyosmani
9
840
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
180
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Between Models and Reality
mayunak
3
270
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
First, design no harm
axbom
PRO
2
1.2k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
110
Transcript
RustでつくるRuby処理系 monochrome twitter: @s_isshiki1969 GitHub: https://github.com/sisshiki1969 Slack: プログラミング言語処理系が好きな人の集まり https://prog-lang-sys-ja-slack.github.io/wiki/
ruruby (https://github.com/sisshiki1969/ruruby) • Rust製のRuby実装 • 仮想マシンインタプリタ • 他の既存実装・仮想マシンへの依存なし • 3万行ぐらい
モチベーション 1. Rustの勉強がしたい 2. 何か言語処理系を作りたい 3. Ruby面白そう
benchmark
開発のモチベーションをいかに維持するか 1. おもちゃじゃないプログラムを動かしたい 2. 「正しく動いている」ことがわかるもの 3. 実行速度を測定できるもの 4. 極力外部ライブラリに依存しないもの
Optcarrot • Rubyで書かれたファミコンのエミュレータ • 「Ruby3x3」のための準公式ベンチマーク • ベンチマーク用の速度測定モードがある • 生成した画像の正しさをチェックサムで検証できる •
(ベンチマークモードでは)外部ライブラリを使用しない
optcarrot benchmark
None
技術的に難しかった点 • ガベージコレクタ →自作した。 • Fiber →アセンブリで実装 (x86-64/linux, aarch64/MacOS)
言語処理系自作は • モチベーションを維持する工夫が大切 • 対象言語の実行モデルの勉強になる • 楽しいので、みんなで作ろう Slack: プログラミング言語処理系が好きな人の集まり https://prog-lang-sys-ja-slack.github.io/wiki/