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
enlarged: extend your own programming language
Search
seki at druby.org
June 14, 2018
Programming
0
85
enlarged: extend your own programming language
RubyKaigiから帰ってきてLT会のLT。RubyKaigi 2018のトークの増補版だよ!
seki at druby.org
June 14, 2018
Tweet
Share
More Decks by seki at druby.org
See All by seki at druby.org
XP, Testing and ninja testing ZOZ5
m_seki
3
360
XP, Testing and ninja testing
m_seki
3
730
RWC 2024 DICOM & ISO/IEC 2022
m_seki
0
500
ERB, ancient and future
m_seki
3
930
ERB Hacks
m_seki
1
1.5k
わりこまれるはなし
m_seki
0
920
ぼくのかんがえたさいきょうのけいやくによるプログラミング
m_seki
2
1.3k
Learn Ractor
m_seki
1
2.7k
How many copies did you buy the first print?
m_seki
1
1.1k
Other Decks in Programming
See All in Programming
いま中途半端なSwift 6対応をするより、Default ActorやApproachable Concurrencyを有効にしてからでいいんじゃない?
yimajo
2
360
Pythonスレッドとは結局何なのか? CPython実装から見るNoGIL時代の変化
curekoshimizu
5
1.5k
CSC305 Lecture 02
javiergs
PRO
1
260
What's new in Spring Modulith?
olivergierke
1
110
クラシルを支える技術と組織
rakutek
0
190
私達はmodernize packageに夢を見るか feat. go/analysis, go/ast / Go Conference 2025
kaorumuta
2
500
Web Components で実現する Hotwire とフロントエンドフレームワークの橋渡し / Bridging with Web Components
da1chi
3
1.9k
開発生産性を上げるための生成AI活用術
starfish719
1
200
大規模アプリのDIフレームワーク刷新戦略 ~過去最大規模の並行開発を止めずにアプリ全体に導入するまで~
mot_techtalk
0
400
実践AIチャットボットUI実装入門
syumai
7
2.5k
Web フロントエンドエンジニアに開かれる AI Agent プロダクト開発 - Vercel AI SDK を観察して AI Agent と仲良くなろう! #FEC余熱NIGHT
izumin5210
3
430
Conquering Massive Traffic Spikes in Ruby Applications with Pitchfork
riseshia
0
150
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
32
2.2k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
GraphQLとの向き合い方2022年版
quramy
49
14k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Become a Pro
speakerdeck
PRO
29
5.5k
Typedesign – Prime Four
hannesfritz
42
2.8k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
610
It's Worth the Effort
3n
187
28k
A better future with KSS
kneath
239
17k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
890
Transcript
Extend your own programming language
[email protected]
-5Ͱ૿ิ
͠Β͓͍ͪͩ͘͘͞ ✓ ͝ཡͷεϙϯαʔͷఏڙ ʹΑΓ͓ૹΓ͠·͢
slide sponsors " " ! !!! @moro @ tricknotes dRuby
Web ( ) https://t.co/fLhzWll5gY @hisashim Rails 700 https://t.co/wAMLWDekJh?amp=1 @igaiga555 https://lambdanote.com @golden_lucky @vestige_
slide sponsors 5 !! 6 2 Scratch Day in !!
@mame iSeq iSeq @youchan Speee Ruby @koichiroo RubyKaigi 2018 2 @ktou RubyWorld Conference 2018 yancya @yancya
slide sponsors seki @tsuboi @ogijun people.suzuri.jp hsbt tatsuosakurai kenchan june29
zaimy tnmt umazura 4 -20 pixiv FANBOX halfmoon_0419 usa shimashima35 igaiga
Extend your own programming language
[email protected]
-5Ͱ૿ิ
RubyKaigi 2018 Ruby Ruby MinRuby dRuby
RubyKaigi 2018 ...
MinRuby Ruby Ruby MinRuby
MinRubyͷίϯςΩετ AST - genv - lenv - Marshal.dump
ঢ়ଶΛอଘʗ࠶ݱͰ͖Δ ...
ετϨʔδʹอଘʗ࠶ݱ Ruby
ωοτϫʔΫʹอଘʗ࠶ݱ HTTP dRuby TupleSpace / Linda
TupleSpace Linda
TupleSpaceαʔόΛ༻ҙ͢Δ drbunix:/tmp/my_ts URI
;ͭ͏ϑΝΠϧ͔Βىಈ parse AST genv, lenv evaluate
TupleSpace͔Βͷىಈ TupleSpace AST, genv, lenv take evaluate
ϓϩηεϚΠάϨʔγϣϯ TupleSpace
ϫʔΧΛىಈ͢ΔτϦοΫ [:ts_eval, ...] take [:ts_call, ...] write [:ts_call, ...] AST,
genv, lenv evaluate while true it = ts.take([:ts_eval, nil, nil, nil, nil]) it[0] = :ts_call ts.write(it) spawn_worker end
TupleSpaceΛಉظ͢ΔΈ TupleSpace Linda write take/read TS ͍͔ͭ͜ͷΛ͍ͨ͠
ͭ·Γ TS TS MinRuby
Docker, Rinda, Ring, MinRuby ෳͷίϯςφʹஔ͞Εͨ3JOEBͷλϓϧεϖʔεΛ3JOHΛͬͯΦʔέε τϨʔγϣϯ ઃఆͳ͠Ͱಉظͤ͞Δͱ͜Ζ·Ͱ࡞ͬͨɻݱࡏϝογϡ ঢ়ʹଓ͠߹͍ͬͯΔͷͰɺ"HFOUΛͬͯ௨৴ΛݮΒͯ͠Έ͍ͨɻ