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
brixen
March 04, 2014
Programming
2
130
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
110
Papers We Love - Immix mark-region garbage collector
brixen
2
710
An Ensemble of Programming Languages: How to Build a Platform for Collaboration
brixen
0
220
Types As Premature Optimization
brixen
2
520
Rubinius X
brixen
3
270
Code Is What Code Does
brixen
0
410
The Future of Ruby
brixen
1
330
Rubinius, and the Future of Ruby
brixen
2
250
So you want to design a programming language
brixen
1
140
Other Decks in Programming
See All in Programming
Being an ethical software engineer
xgouchet
PRO
0
210
KANNA Android の技術的課題と取り組み
watabee
0
110
Boost Your Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
230
Contribute to Comunities | React Tokyo Meetup #4 LT
sasagar
0
550
小田原でみんなで一句詠みたいな #phpcon_odawara
stefafafan
0
350
Make Parsers Compatible Using Automata Learning
makenowjust
2
5.4k
個人開発の学生アプリが企業譲渡されるまで
akidon0000
0
950
PHP で学ぶ OAuth 入門
azuki
1
210
「”誤った使い方をすることが困難”な設計」で良いコードの基礎を固めよう / phpcon-odawara-2025
taniguhey
0
170
ComposeでWebアプリを作る技術
tbsten
0
120
「影響が少ない」を自分の目でみてみる
o0h
PRO
2
1.2k
[NG India] Event-Based State Management with NgRx SignalStore
markostanimirovic
1
170
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Rails Girls Zürich Keynote
gr2m
94
13k
Site-Speed That Sticks
csswizardry
5
500
A Modern Web Designer's Workflow
chriscoyier
693
190k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
400
Code Reviewing Like a Champion
maltzj
522
40k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Agile that works and the tools we love
rasmusluckow
328
21k
We Have a Design System, Now What?
morganepeng
52
7.5k
A Tale of Four Properties
chriscoyier
158
23k
Statistics for Hackers
jakevdp
798
220k
Designing for Performance
lara
608
69k
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