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
Augmented Ruby: The Rubinius Language Platform
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
brixen
March 04, 2014
Programming
2
150
Augmented Ruby: The Rubinius Language Platform
Talk presented at the March 4th, 2014 ChicagoRuby meetup.
brixen
March 04, 2014
Tweet
Share
More Decks by brixen
See All by brixen
Stop making mud pies!
brixen
0
120
Papers We Love - Immix mark-region garbage collector
brixen
2
760
An Ensemble of Programming Languages: How to Build a Platform for Collaboration
brixen
0
250
Types As Premature Optimization
brixen
2
570
Rubinius X
brixen
3
290
Code Is What Code Does
brixen
0
420
The Future of Ruby
brixen
1
340
Rubinius, and the Future of Ruby
brixen
2
260
So you want to design a programming language
brixen
1
170
Other Decks in Programming
See All in Programming
SourceGeneratorのマーカー属性問題について
htkym
0
210
Ruby and LLM Ecosystem 2nd
koic
1
1.2k
AWS×クラウドネイティブソフトウェア設計 / AWS x Cloud-Native Software Design
nrslib
16
3.3k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
740
Windows on Ryzen and I
seosoft
0
340
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
2k
RAGでハマりがちな"Excelの罠"を、データの構造化で突破する
harumiweb
9
3k
ふつうのRubyist、ちいさなデバイス、大きな一年 / Ordinary Rubyists, Tiny Devices, Big Year
chobishiba
1
480
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
13
8.2k
Claude Code Skill入門
mayahoney
0
410
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
530
「やめとこ」がなくなった — 1月にZennを始めて22本書いた AI共創開発のリアル
atani14
0
410
Featured
See All Featured
Design in an AI World
tapps
0
170
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
180
Are puppies a ranking factor?
jonoalderson
1
3.1k
Prompt Engineering for Job Search
mfonobong
0
210
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
160
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.5k
How STYLIGHT went responsive
nonsquared
100
6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
The Limits of Empathy - UXLibs8
cassininazir
1
270
Designing Experiences People Love
moore
143
24k
Transcript
Augmented Ruby! The Rubinius Language Platform!
Brian Shirai
You can create your own programming language
None
None
None
None
3 steps to designing! a language
Steps to designing a language 1.Syntax
def divide(a, b) # ... end ! function divide(a, b)
{ /* ... */ }
Steps to designing a language 1. Syntax 2.Semantics
def divide(a, b) a / b # 1 / 3
=> 0 end ! function divide(a, b) { a / b; /* 1 / 3 => 0.333 */ }
Steps to designing a language 1. Syntax 2. Semantics 3.Model
3 parts to building! a language
Parts to building a language 1.Parser
+ 1 2 Parse: 1 + 2 + 3 +
3
None
None
None
Parts to building a language 1. Parser 2.Compiler
Parts to building a language 1. Parser 2. Compiler 3.Machine
None
processing input output Pipeline of transformations
Parts to building a language 1.Parser
None
None
None
None
None
None
Parts to building a language 1. Parser 2.Compiler
None
None
Parts to building a language 1. Parser 2. Compiler 3.Machine
->0000: meta_push_1 0001: meta_push_2 0002: send_stack :+, 1 0005: push_int
3 0007: send_stack :+, 1 0010: ret Stack Instructions 1 Interpretation
Stack Instructions 1 Interpretation 2 0000: meta_push_1 ->0001: meta_push_2 0002:
send_stack :+, 1 0005: push_int 3 0007: send_stack :+, 1 0010: ret
Stack Instructions 3 Interpretation 0000: meta_push_1 0001: meta_push_2 ->0002: send_stack
:+, 1 0005: push_int 3 0007: send_stack :+, 1 0010: ret
Stack Instructions 3 Interpretation 3 0000: meta_push_1 0001: meta_push_2 0002:
send_stack :+, 1 ->0005: push_int 3 0007: send_stack :+, 1 0010: ret
Stack Instructions 6 Interpretation 0000: meta_push_1 0001: meta_push_2 0002: send_stack
:+, 1 0005: push_int 3 ->0007: send_stack :+, 1 0010: ret
Stack Instructions 6 Interpretation 0000: meta_push_1 0001: meta_push_2 0002: send_stack
:+, 1 0005: push_int 3 0007: send_stack :+, 1 ->0010: ret
None
None
Thank you
Credits https://www.thingiverse.com/thing:16023 http://snokey.com/furniture-designing-with-simple-concept-of- decoration/simple-capture-of-designing-with-writing-photo-capture/ http://www.citsolutions.edu.au/uploads/flags.jpg http://atomy-lang.org http://fancy-lang.org https://github.com/apricot-lang/apricot https://github.com/evanphx/kpeg http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html