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
89
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
RWC2025 Ninja-testing with smart playlist
m_seki
4
780
XP, Testing and ninja testing ZOZ5
m_seki
3
2k
XP, Testing and ninja testing
m_seki
3
910
RWC 2024 DICOM & ISO/IEC 2022
m_seki
0
520
ERB, ancient and future
m_seki
3
970
ERB Hacks
m_seki
1
1.6k
わりこまれるはなし
m_seki
0
990
ぼくのかんがえたさいきょうのけいやくによるプログラミング
m_seki
2
1.4k
Learn Ractor
m_seki
1
2.8k
Other Decks in Programming
See All in Programming
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
2.1k
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
120
ローカルLLMを⽤いてコード補完を⾏う VSCode拡張機能を作ってみた
nearme_tech
PRO
0
210
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
160
Implementation Patterns
denyspoltorak
0
140
DevFest Android in Korea 2025 - 개발자 커뮤니티를 통해 얻는 가치
wisemuji
0
180
tparseでgo testの出力を見やすくする
utgwkk
2
330
[AtCoder Conference 2025] LLMを使った業務AHCの上⼿な解き⽅
terryu16
6
960
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.5k
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
170
Graviton と Nitro と私
maroon1st
0
150
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
230
Featured
See All Featured
Fireside Chat
paigeccino
41
3.8k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
2
3.8k
Visualization
eitanlees
150
16k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Accessibility Awareness
sabderemane
0
28
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Practical Orchestrator
shlominoach
190
11k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
35
Discover your Explorer Soul
emna__ayadi
2
1k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
73
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Λͬͯ௨৴ΛݮΒͯ͠Έ͍ͨɻ