├── .gitignore ├── .ruby-version ├── CNAME ├── Gemfile ├── favicon.ico ├── library.png ├── _sources ├── flask.eps ├── flask.png ├── library.png ├── credit.txt └── library.eps ├── favicon-16x16.png ├── favicon-32x32.png ├── favicon-96x96.png ├── README.md ├── _layouts └── default.html ├── Gemfile.lock └── index.md /.gitignore: -------------------------------------------------------------------------------- 1 | _site -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 2.6.3 2 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | rubybib.org 2 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | gem 'github-pages' 3 | -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngsankha/rubybib.org/gh-pages/favicon.ico -------------------------------------------------------------------------------- /library.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngsankha/rubybib.org/gh-pages/library.png -------------------------------------------------------------------------------- /_sources/flask.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngsankha/rubybib.org/gh-pages/_sources/flask.eps -------------------------------------------------------------------------------- /_sources/flask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngsankha/rubybib.org/gh-pages/_sources/flask.png -------------------------------------------------------------------------------- /favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngsankha/rubybib.org/gh-pages/favicon-16x16.png -------------------------------------------------------------------------------- /favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngsankha/rubybib.org/gh-pages/favicon-32x32.png -------------------------------------------------------------------------------- /favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngsankha/rubybib.org/gh-pages/favicon-96x96.png -------------------------------------------------------------------------------- /_sources/library.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngsankha/rubybib.org/gh-pages/_sources/library.png -------------------------------------------------------------------------------- /_sources/credit.txt: -------------------------------------------------------------------------------- 1 | https://www.flaticon.com/free-icon/library_201571 2 | 3 |
4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # The Ruby Bibliography 2 | 3 | A list of Ruby research theses and papers. 4 | 5 | Contributions welcome, but we'd like to focus on high quality theses and papers 6 | from well regarded conferences and journals. We aren't looking to list technical 7 | books for Ruby users, for example. 8 | 9 | Theses and papers should normally state a research contribution and have been 10 | reputably peer reviewed or viva'd to be included, but we will make exceptions 11 | at our discretion. 12 | 13 | ## Contributing 14 | 15 | ### Style Guide 16 | 17 | Copy the existing entries. 18 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 52 | 53 |
61 |
65 | Academic writing on the Ruby programming language
71 |The Ruby programming language hasn't historically been 74 | the subject of much research, either in industry or academia. A lot of recent 75 | systems research has used languages like C, C++ and Java. Contemporary 76 | programming language research often uses languages like Java, Scala, Racket and 77 | Haskell. Modern research into VMs, compilers and garbage collectors is often 78 | based on Java or recently Python.
79 |However there are now a growing number of research projects using Ruby. On this 80 | page we list theses and peer-reviewed papers and articles that cover Ruby 81 | implementation or use Ruby, including alternative implementations such as JRuby.
82 | {{ content }} 83 | 89 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /_sources/library.eps: -------------------------------------------------------------------------------- 1 | %!PS-Adobe-3.0 EPSF-3.0 2 | %%Creator: cairo 1.14.2 (http://cairographics.org) 3 | %%CreationDate: Mon Aug 22 12:05:09 2016 4 | %%Pages: 1 5 | %%DocumentData: Clean7Bit 6 | %%LanguageLevel: 2 7 | %%BoundingBox: 0 -1 410 410 8 | %%EndComments 9 | %%BeginProlog 10 | save 11 | 50 dict begin 12 | /q { gsave } bind def 13 | /Q { grestore } bind def 14 | /cm { 6 array astore concat } bind def 15 | /w { setlinewidth } bind def 16 | /J { setlinecap } bind def 17 | /j { setlinejoin } bind def 18 | /M { setmiterlimit } bind def 19 | /d { setdash } bind def 20 | /m { moveto } bind def 21 | /l { lineto } bind def 22 | /c { curveto } bind def 23 | /h { closepath } bind def 24 | /re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto 25 | 0 exch rlineto 0 rlineto closepath } bind def 26 | /S { stroke } bind def 27 | /f { fill } bind def 28 | /f* { eofill } bind def 29 | /n { newpath } bind def 30 | /W { clip } bind def 31 | /W* { eoclip } bind def 32 | /BT { } bind def 33 | /ET { } bind def 34 | /pdfmark where { pop globaldict /?pdfmark /exec load put } 35 | { globaldict begin /?pdfmark /pop load def /pdfmark 36 | /cleartomark load def end } ifelse 37 | /BDC { mark 3 1 roll /BDC pdfmark } bind def 38 | /EMC { mark /EMC pdfmark } bind def 39 | /cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def 40 | /Tj { show currentpoint cairo_store_point } bind def 41 | /TJ { 42 | { 43 | dup 44 | type /stringtype eq 45 | { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse 46 | } forall 47 | currentpoint cairo_store_point 48 | } bind def 49 | /cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore 50 | cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def 51 | /Tf { pop /cairo_font exch def /cairo_font_matrix where 52 | { pop cairo_selectfont } if } bind def 53 | /Td { matrix translate cairo_font_matrix matrix concatmatrix dup 54 | /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point 55 | /cairo_font where { pop cairo_selectfont } if } bind def 56 | /Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def 57 | cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def 58 | /g { setgray } bind def 59 | /rg { setrgbcolor } bind def 60 | /d1 { setcachedevice } bind def 61 | %%EndProlog 62 | %%BeginSetup 63 | %%EndSetup 64 | %%Page: 1 1 65 | %%BeginPageSetup 66 | %%PageBoundingBox: 0 -1 410 410 67 | %%EndPageSetup 68 | q 0 -1 410 411 rectclip q 69 | 1 0.792157 0.309804 rg 70 | 204.801 -0.002 m 317.602 -0.002 409.602 91.998 409.602 204.799 c 409.602 71 | 317.6 317.602 409.6 204.801 409.6 c 92 409.6 0 317.6 0 204.799 c 0 91.998 72 | 92 -0.002 204.801 -0.002 c h 73 | 204.801 -0.002 m f 74 | 0.364706 0.866667 0.827451 rg 75 | 122.496 301.186 m 122.496 75.104 l 172.25 118.807 l 172.25 344.889 l 165.773 76 | 344.889 l 162.328 342.26 l 129.625 342.26 l 129.613 344.932 l 124.234 344.889 77 | l 74.477 301.186 l h 78 | 122.496 301.186 m f 79 | 1 g 80 | 81.332 301.186 m 116.848 301.186 l 162.328 342.26 l 126.816 342.26 l h 81 | 81.332 301.186 m f 82 | 1 0.458824 0.486275 rg 83 | 135.066 312.225 m 129.176 312.319 l 116.848 301.186 l 81.336 301.186 l 84 | 94.242 312.842 l 87.859 312.936 l 74.48 301.186 l 74.48 75.104 l 122.496 85 | 75.104 l 135.066 86.143 l h 86 | 135.066 312.225 m f 87 | 0.92549 0.941176 0.945098 rg 88 | 199.746 301.186 m 199.746 75.104 l 249.5 118.807 l 249.5 344.889 l 243.027 89 | 344.889 l 239.582 342.256 l 206.879 342.256 l 206.867 344.932 l 201.488 90 | 344.889 l 151.73 301.186 l 199.75 301.186 l h 91 | 199.746 301.186 m f 92 | 1 g 93 | 158.586 301.186 m 194.098 301.186 l 239.582 342.26 l 204.07 342.26 l h 94 | 158.586 301.186 m f 95 | 1 0.458824 0.486275 rg 96 | 212.316 312.225 m 206.426 312.319 l 194.102 301.186 l 158.586 301.186 l 97 | 171.492 312.842 l 165.109 312.936 l 151.73 301.186 l 151.73 75.104 l 199.746 98 | 75.104 l 212.316 86.143 l h 99 | 212.316 312.225 m f 100 | 0.364706 0.866667 0.827451 rg 101 | 304.754 352.92 m 267.914 297.893 l 326.07 79.42 l 362.91 134.448 l 304.754 102 | 352.92 l 298.5 351.252 l 295.848 347.827 l 264.242 339.413 l 263.547 341.995 103 | l 258.355 340.569 l 221.516 285.541 l 267.914 297.893 l h 104 | 304.754 352.92 m f 105 | 1 g 106 | 228.141 287.303 m 262.457 296.436 l 295.844 347.827 l 261.527 338.694 l 107 | 228.141 287.299 l h 108 | 228.141 287.303 m f 109 | 1 0.458824 0.486275 rg 110 | 277.223 311.795 m 271.504 310.366 l 262.457 296.436 l 228.141 287.303 l 111 | 237.617 301.885 l 231.426 300.334 l 221.52 285.538 l 279.676 67.065 l 326.074 112 | 79.416 l 335.379 93.319 l 277.227 311.795 l h 113 | 277.223 311.795 m f 114 | 1 g 115 | 315.527 292.194 m 312.609 303.307 l 292.023 269.651 l 294.941 258.534 l 116 | h 117 | 315.527 292.194 m f 118 | 304.41 298.506 m 302.859 305.729 l 288.965 283.006 l 290.52 275.788 l 304.41 119 | 298.502 l h 120 | 304.41 298.506 m f 121 | Q Q 122 | showpage 123 | %%Trailer 124 | end restore 125 | %%EOF 126 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | activesupport (4.2.11.1) 5 | i18n (~> 0.7) 6 | minitest (~> 5.1) 7 | thread_safe (~> 0.3, >= 0.3.4) 8 | tzinfo (~> 1.1) 9 | addressable (2.6.0) 10 | public_suffix (>= 2.0.2, < 4.0) 11 | coffee-script (2.4.1) 12 | coffee-script-source 13 | execjs 14 | coffee-script-source (1.11.1) 15 | colorator (1.1.0) 16 | commonmarker (0.17.13) 17 | ruby-enum (~> 0.5) 18 | concurrent-ruby (1.1.5) 19 | dnsruby (1.61.2) 20 | addressable (~> 2.5) 21 | em-websocket (0.5.1) 22 | eventmachine (>= 0.12.9) 23 | http_parser.rb (~> 0.6.0) 24 | ethon (0.12.0) 25 | ffi (>= 1.3.0) 26 | eventmachine (1.2.7) 27 | execjs (2.7.0) 28 | faraday (0.15.4) 29 | multipart-post (>= 1.2, < 3) 30 | ffi (1.11.1) 31 | forwardable-extended (2.6.0) 32 | gemoji (3.0.1) 33 | github-pages (198) 34 | activesupport (= 4.2.11.1) 35 | github-pages-health-check (= 1.16.1) 36 | jekyll (= 3.8.5) 37 | jekyll-avatar (= 0.6.0) 38 | jekyll-coffeescript (= 1.1.1) 39 | jekyll-commonmark-ghpages (= 0.1.5) 40 | jekyll-default-layout (= 0.1.4) 41 | jekyll-feed (= 0.11.0) 42 | jekyll-gist (= 1.5.0) 43 | jekyll-github-metadata (= 2.12.1) 44 | jekyll-mentions (= 1.4.1) 45 | jekyll-optional-front-matter (= 0.3.0) 46 | jekyll-paginate (= 1.1.0) 47 | jekyll-readme-index (= 0.2.0) 48 | jekyll-redirect-from (= 0.14.0) 49 | jekyll-relative-links (= 0.6.0) 50 | jekyll-remote-theme (= 0.3.1) 51 | jekyll-sass-converter (= 1.5.2) 52 | jekyll-seo-tag (= 2.5.0) 53 | jekyll-sitemap (= 1.2.0) 54 | jekyll-swiss (= 0.4.0) 55 | jekyll-theme-architect (= 0.1.1) 56 | jekyll-theme-cayman (= 0.1.1) 57 | jekyll-theme-dinky (= 0.1.1) 58 | jekyll-theme-hacker (= 0.1.1) 59 | jekyll-theme-leap-day (= 0.1.1) 60 | jekyll-theme-merlot (= 0.1.1) 61 | jekyll-theme-midnight (= 0.1.1) 62 | jekyll-theme-minimal (= 0.1.1) 63 | jekyll-theme-modernist (= 0.1.1) 64 | jekyll-theme-primer (= 0.5.3) 65 | jekyll-theme-slate (= 0.1.1) 66 | jekyll-theme-tactile (= 0.1.1) 67 | jekyll-theme-time-machine (= 0.1.1) 68 | jekyll-titles-from-headings (= 0.5.1) 69 | jemoji (= 0.10.2) 70 | kramdown (= 1.17.0) 71 | liquid (= 4.0.0) 72 | listen (= 3.1.5) 73 | mercenary (~> 0.3) 74 | minima (= 2.5.0) 75 | nokogiri (>= 1.8.5, < 2.0) 76 | rouge (= 2.2.1) 77 | terminal-table (~> 1.4) 78 | github-pages-health-check (1.16.1) 79 | addressable (~> 2.3) 80 | dnsruby (~> 1.60) 81 | octokit (~> 4.0) 82 | public_suffix (~> 3.0) 83 | typhoeus (~> 1.3) 84 | html-pipeline (2.11.0) 85 | activesupport (>= 2) 86 | nokogiri (>= 1.4) 87 | http_parser.rb (0.6.0) 88 | i18n (0.9.5) 89 | concurrent-ruby (~> 1.0) 90 | jekyll (3.8.5) 91 | addressable (~> 2.4) 92 | colorator (~> 1.0) 93 | em-websocket (~> 0.5) 94 | i18n (~> 0.7) 95 | jekyll-sass-converter (~> 1.0) 96 | jekyll-watch (~> 2.0) 97 | kramdown (~> 1.14) 98 | liquid (~> 4.0) 99 | mercenary (~> 0.3.3) 100 | pathutil (~> 0.9) 101 | rouge (>= 1.7, < 4) 102 | safe_yaml (~> 1.0) 103 | jekyll-avatar (0.6.0) 104 | jekyll (~> 3.0) 105 | jekyll-coffeescript (1.1.1) 106 | coffee-script (~> 2.2) 107 | coffee-script-source (~> 1.11.1) 108 | jekyll-commonmark (1.3.1) 109 | commonmarker (~> 0.14) 110 | jekyll (>= 3.7, < 5.0) 111 | jekyll-commonmark-ghpages (0.1.5) 112 | commonmarker (~> 0.17.6) 113 | jekyll-commonmark (~> 1) 114 | rouge (~> 2) 115 | jekyll-default-layout (0.1.4) 116 | jekyll (~> 3.0) 117 | jekyll-feed (0.11.0) 118 | jekyll (~> 3.3) 119 | jekyll-gist (1.5.0) 120 | octokit (~> 4.2) 121 | jekyll-github-metadata (2.12.1) 122 | jekyll (~> 3.4) 123 | octokit (~> 4.0, != 4.4.0) 124 | jekyll-mentions (1.4.1) 125 | html-pipeline (~> 2.3) 126 | jekyll (~> 3.0) 127 | jekyll-optional-front-matter (0.3.0) 128 | jekyll (~> 3.0) 129 | jekyll-paginate (1.1.0) 130 | jekyll-readme-index (0.2.0) 131 | jekyll (~> 3.0) 132 | jekyll-redirect-from (0.14.0) 133 | jekyll (~> 3.3) 134 | jekyll-relative-links (0.6.0) 135 | jekyll (~> 3.3) 136 | jekyll-remote-theme (0.3.1) 137 | jekyll (~> 3.5) 138 | rubyzip (>= 1.2.1, < 3.0) 139 | jekyll-sass-converter (1.5.2) 140 | sass (~> 3.4) 141 | jekyll-seo-tag (2.5.0) 142 | jekyll (~> 3.3) 143 | jekyll-sitemap (1.2.0) 144 | jekyll (~> 3.3) 145 | jekyll-swiss (0.4.0) 146 | jekyll-theme-architect (0.1.1) 147 | jekyll (~> 3.5) 148 | jekyll-seo-tag (~> 2.0) 149 | jekyll-theme-cayman (0.1.1) 150 | jekyll (~> 3.5) 151 | jekyll-seo-tag (~> 2.0) 152 | jekyll-theme-dinky (0.1.1) 153 | jekyll (~> 3.5) 154 | jekyll-seo-tag (~> 2.0) 155 | jekyll-theme-hacker (0.1.1) 156 | jekyll (~> 3.5) 157 | jekyll-seo-tag (~> 2.0) 158 | jekyll-theme-leap-day (0.1.1) 159 | jekyll (~> 3.5) 160 | jekyll-seo-tag (~> 2.0) 161 | jekyll-theme-merlot (0.1.1) 162 | jekyll (~> 3.5) 163 | jekyll-seo-tag (~> 2.0) 164 | jekyll-theme-midnight (0.1.1) 165 | jekyll (~> 3.5) 166 | jekyll-seo-tag (~> 2.0) 167 | jekyll-theme-minimal (0.1.1) 168 | jekyll (~> 3.5) 169 | jekyll-seo-tag (~> 2.0) 170 | jekyll-theme-modernist (0.1.1) 171 | jekyll (~> 3.5) 172 | jekyll-seo-tag (~> 2.0) 173 | jekyll-theme-primer (0.5.3) 174 | jekyll (~> 3.5) 175 | jekyll-github-metadata (~> 2.9) 176 | jekyll-seo-tag (~> 2.0) 177 | jekyll-theme-slate (0.1.1) 178 | jekyll (~> 3.5) 179 | jekyll-seo-tag (~> 2.0) 180 | jekyll-theme-tactile (0.1.1) 181 | jekyll (~> 3.5) 182 | jekyll-seo-tag (~> 2.0) 183 | jekyll-theme-time-machine (0.1.1) 184 | jekyll (~> 3.5) 185 | jekyll-seo-tag (~> 2.0) 186 | jekyll-titles-from-headings (0.5.1) 187 | jekyll (~> 3.3) 188 | jekyll-watch (2.2.1) 189 | listen (~> 3.0) 190 | jemoji (0.10.2) 191 | gemoji (~> 3.0) 192 | html-pipeline (~> 2.2) 193 | jekyll (~> 3.0) 194 | kramdown (1.17.0) 195 | liquid (4.0.0) 196 | listen (3.1.5) 197 | rb-fsevent (~> 0.9, >= 0.9.4) 198 | rb-inotify (~> 0.9, >= 0.9.7) 199 | ruby_dep (~> 1.2) 200 | mercenary (0.3.6) 201 | mini_portile2 (2.4.0) 202 | minima (2.5.0) 203 | jekyll (~> 3.5) 204 | jekyll-feed (~> 0.9) 205 | jekyll-seo-tag (~> 2.1) 206 | minitest (5.11.3) 207 | multipart-post (2.1.1) 208 | nokogiri (1.10.3) 209 | mini_portile2 (~> 2.4.0) 210 | octokit (4.14.0) 211 | sawyer (~> 0.8.0, >= 0.5.3) 212 | pathutil (0.16.2) 213 | forwardable-extended (~> 2.6) 214 | public_suffix (3.0.3) 215 | rb-fsevent (0.10.3) 216 | rb-inotify (0.10.0) 217 | ffi (~> 1.0) 218 | rouge (2.2.1) 219 | ruby-enum (0.7.2) 220 | i18n 221 | ruby_dep (1.5.0) 222 | rubyzip (1.2.2) 223 | safe_yaml (1.0.5) 224 | sass (3.7.4) 225 | sass-listen (~> 4.0.0) 226 | sass-listen (4.0.0) 227 | rb-fsevent (~> 0.9, >= 0.9.4) 228 | rb-inotify (~> 0.9, >= 0.9.7) 229 | sawyer (0.8.2) 230 | addressable (>= 2.3.5) 231 | faraday (> 0.8, < 2.0) 232 | terminal-table (1.8.0) 233 | unicode-display_width (~> 1.1, >= 1.1.1) 234 | thread_safe (0.3.6) 235 | typhoeus (1.3.1) 236 | ethon (>= 0.9.0) 237 | tzinfo (1.2.5) 238 | thread_safe (~> 0.1) 239 | unicode-display_width (1.6.0) 240 | 241 | PLATFORMS 242 | ruby 243 | 244 | DEPENDENCIES 245 | github-pages 246 | 247 | BUNDLED WITH 248 | 1.17.2 249 | -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: The Ruby Bibliography 4 | --- 5 | 6 | ### Virtual Machines 7 | 8 | # K. Sasada. **[Gradual Write-barrier Insertion into a Ruby interpreter](https://www.atdot.net/~ko1/activities/rgengc_ismm.pdf)**. In proceedings of the International Symposium on Memory Management (ISMM), 2019. 9 | MRI 10 | 11 | # K. Sugiyama, K. Sasada, M. J. Dürst. **[Dynamic Extension of the Ruby Virtual Machine Stack](https://ipsj.ixsq.nii.ac.jp/ej/index.php?active_action=repository_view_main_item_detail&page_id=13&block_id=8&item_id=191427&item_no=1)**. In the IPSJ Journal of Programming (PRO), 2018. *In Japanese*. 12 | MRI 13 | 14 | # K. Menard, C. Seaton, B. Daloze. **[Specializing Ropes for Ruby](https://chrisseaton.com/truffleruby/ropes-manlang.pdf)**. In proceedings of 15th International Conference on Managed Languages & Runtimes (ManLang), 2018. 15 | TruffleRuby 16 | 17 | # M. Grimmer, R. Schatz, C. Seaton, T. Würthinger, M. Luján. **[Cross-Language Interoperability in a Multi-Language Runtime](https://chrisseaton.com/truffleruby/cross-language-interop.pdf)**. In ACM Transactions on Programming Languages and Systems (TOPLAS), Vol. 40, No. 2, 2018. 18 | TruffleRuby 19 | 20 | # B. Yang, J. Kim, S. Moon. **[Exceptionalization: A Java VM Optimization for Non-Java Languages](https://dl.acm.org/citation.cfm?id=3046681)**. In ACM Transactions on Architecture and Code Optimization (TACO), volume 14, issue 1, 2017. JRuby 21 | 22 | # S. Xu, D. Bremner, D. Heidinga. **[Fusing Method Handle Graphs for Efficient Dynamic JVM Language Implementations](https://xushijie.github.io/papers/vmil17.pdf)**. In proceedings of the 9th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages (VMIL), 2017. 23 | JRuby 24 | 25 | # T. Würthinger, C. Wimmer, C. Humer, A. Wöss, L. Stadler, C. Seaton, G. Duboscq, D. Simon, M. Grimmer. **[Practical Partial Evaluation for High-Performance Dynamic Language Runtimes](https://chrisseaton.com/rubytruffle/pldi17-truffle/pldi17-truffle.pdf)**. In proceedings of the 38th Conference on Programming Language Design and Implementation (PLDI), 2017. 26 | TruffleRuby 27 | 28 | # S. Marr, B. Daloze, H. Mössenböck. **[Cross-Language Compiler Benchmarking - Are We Fast Yet?](http://stefan-marr.de/downloads/dls16-marr-et-al-cross-language-compiler-benchmarking-are-we-fast-yet.pdf)**. In proceedings of the 12th Dynamic Languages Symposium (DLS), 2016. 29 | TruffleRuby JRuby Rubinius MRI 30 | 31 | # C. Seaton. **[AST Specialisation and Partial Evaluation for Easy High-Performance Metaprogramming](https://chrisseaton.com/rubytruffle/meta16/meta16-ruby.pdf)**. In proceedings of the 1st Workshop on Meta-Programming Techniques and Reflection (META), 2016. 32 | TruffleRuby 33 | 34 | # S. Xu, D. Bremner, D. Heidinga. **[MHDeS: Deduplicating Method Handle Graphs for Efficient Dynamic JVM Language Implementations](https://xushijie.github.io/papers/deduplication.pdf)**. In proceedings of the 11th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS), 2016. 35 | JRuby 36 | 37 | # K. Tanaka, A. D. Nagumanthri, Y. Matsumoto. **[mruby – Rapid Software Development for Embedded Systems](https://www.researchgate.net/profile/Aviansh_Nagumanthri/publication/282816987_mruby_-_Rapid_Software_Development_for_Embedded_Systems/links/561f03e308ae50795aff64d0/mruby-Rapid-Software-Development-for-Embedded-Systems.pdf)**. In proceedings of the 15th International Conference on Computational Science and its Applications (ICCSA), 2015. 38 | mruby 39 | 40 | # S. Xu, D. Bremner, D. Heidinga. **[Mining Method Handle Graphs for Efficient Dynamic JVM Languages](https://xushijie.github.io/papers/mh_mining.pdf)**. In ACM proceedings 12th Conference on Principles and Practices of Programming on the Java Platform (PPPJ), 2015. 41 | JRuby 42 | 43 | # M. Viering. **[An Efficient Runtime System for Reactive Programming](http://mviering.de/reactiveruby.pdf)**. Master thesis, Technische Universität Darmstadt, 2015. 44 | TruffleRuby 45 | 46 | # C. Seaton. **[Specialising Dynamic Techniques for Implementing the Ruby Programming Langauge](https://chrisseaton.com/phd/specialising-ruby.pdf)**. PhD thesis, University of Manchester, 2015. 47 | TruffleRuby 48 | 49 | # M. Grimmer, C. Seaton, R. Schatz, T. Würthinger, H. Mössenböck. **[High-Performance Cross-Language Interoperability in a Multi-Language Runtime](https://chrisseaton.com/rubytruffle/dls15-interop/dls15-interop.pdf)**. In proceedings of the 11th Dynamic Languages Symposium (DLS), 2015. 50 | TruffleRuby 51 | 52 | # F. Niephaus, M. Springer, T. Felgentreff, T. Pape, R. Hirschfeld. **[Call-target-specific Method Arguments](https://github.com/HPI-SWA-Lab/TargetSpecific-ICOOOLPS/raw/gh-pages/call_target_specific_method_arguments.pdf)**. In proceedings of the 10th Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems Workshop (ICOOOLPS), 2015. 53 | TruffleRuby 54 | 55 | # B. Daloze, C. Seaton, D. Bonetta, H. Mössenböck. **[Techniques and Applications for Guest-Language Safepoints](https://chrisseaton.com/rubytruffle/icooolps15-safepoints/safepoints.pdf)**. In proceedings of the 10th Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems Workshop (ICOOOLPS), 2015. 56 | TruffleRuby 57 | 58 | # S. Marr, C. Seaton, S. Ducasse. **[Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and without Compromises](https://chrisseaton.com/rubytruffle/pldi15-metaprogramming/pldi15-marr-et-al-zero-overhead-metaprogramming.pdf)**. In proceedings of the 36th Conference on Programming Language Design and Implementation (PLDI), 2015. 59 | TruffleRuby 60 | 61 | # M. Grimmer, C. Seaton, T. Würthinger, H. Mössenböck. **[Dynamically Composing Languages in a Modular Way: Supporting C Extensions for Dynamic Languages](https://chrisseaton.com/rubytruffle/modularity15/rubyextensions.pdf)**. In proceedings of the 14th International Conference on Modularity, 2015. 62 | TruffleRuby 63 | 64 | # A. Wöß, C. Wirth, D. Bonetta, C. Seaton, C. Humer, H. Mössenböck. **[An Object Storage Model for the Truffle Language Implementation Framework](https://chrisseaton.com/rubytruffle/pppj14-om/pppj14-om.pdf)**. In proceedings of the International Conference on Principles and Practices of Programming on the Java Platform (PPPJ), 2014. 65 | TruffleRuby 66 | 67 | # W. Hang Li, D. R. White, J. Singer. **[JVM-Hosted Languages: They Talk the Talk, but do they Walk the Walk?](http://www.dcs.gla.ac.uk/~jsinger/pdfs/pppj13.pdf)**. In proceedings of the International Conference on Principles and Practices of Programming on the Java Platform (PPPJ), 2013. 68 | JRuby 69 | 70 | # M. Springer. **[Inter-language Collaboration in an Object-oriented Virtual Machine](http://www.matthiasspringer.de/downloads/BP2012H1_intra-language_collaboration.pdf)**. Bachelor's thesis, Hasso-Plattner-Institute, 2013. 71 | MagLev 72 | 73 | # S. Shiba, K. Sasada, K. Hiraki. **[CastOff: A Compiler for Ruby Implemented as a Library](http://id.nii.ac.jp/1001/00083504/)**. In Journal of Information Processing Society of Japan, Transactions on Programming, 2012. *In Japanese*. 74 | MRI 75 | 76 | # S. Shiba, K. Sasada, S. Urabe, Y. Matsumoto, M. Inaba, K. Hiraki. **[A Practical AOT Compiler for Ruby](http://id.nii.ac.jp/1001/00073661/)**. In Journal of Information Processing Society of Japan, Transactions on Programming, 2011. *In Japanese*. 77 | MRI 78 | 79 | # M. Furr, J. An, J. S. Foster, M. Hicks. **[The Ruby Intermediate Language](http://www.cs.umd.edu/projects/PL/druby/papers/druby-dls09.pdf)**. In proceedings of the Dynamic Language Symposium, 2009. 80 | 81 | # K. Sasada. **[Ricsin: A System for “C Mix-in to Ruby”](http://www.atdot.net/~ko1/activities/ricsin2009.pdf)**. In proceedings of the IPSJ Programming Workshop, 2009. *In Japanese*. 82 | MRI 83 | 84 | # K. Sasada. **[A Lightweight Representation of Floting-Point Numbers on Ruby Interpreter](http://www.atdot.net/~ko1/activities/rubyfp2008.pdf)**. In proceedings of PPL, 2008. *In Japanese*. 85 | MRI 86 | 87 | # K. Sasada, Y. Matsumoto, A. Maeda, M. Namiki. **[YARV: Yet Another RubyVM The Implementation and Evaluation](http://www.atdot.net/~ko1/activities/yarv2005vm.pdf)**. 88 | In the IPSJ Journal of Programming (PRO), 2005. *In Japanese*. 89 | MRI 90 | 91 | # K. Sasada. **[YARV: Yet Another RubyVM: Innovating the Ruby Interpreter](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.482.9851&rep=rep1&type=pdf)**. In proceedings of the Companion to the 20th Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2005. 92 | MRI 93 | 94 | ### Parallelism and Concurrency 95 | 96 | # B. Daloze, A. Tal, S. Marr, H. Mössenböck, E. Petrank. **[Parallelization of Dynamic Languages: Synchronizing Built-in Collections](http://ssw.jku.at/General/Staff/Daloze/thread-safe-collections.pdf)**. In proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2018. 97 | TruffleRuby 98 | 99 | # M. Springer, H. Masuhara. **[Object Support in an Array-Based GPGPU Extension for Ruby](https://m-sp.org/downloads/array16.pdf)**. In proceedings of the 3rd International Workshop on Libraries, Languages, and Compilers for Array Programming (ARRAY), 2016. 100 | 101 | # B. Daloze, S. Marr, D. Bonetta, H. Mössenböck. **[Efficient and Thread-Safe Objects for Dynamically-Typed Languages](http://ssw.jku.at/General/Staff/Daloze/thread-safe-objects.pdf)**. In proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2016. 102 | TruffleRuby 103 | 104 | # C. Ding, B. Gernhardt, P. Li, M. Hertz. **[Safe Parallel Programming in an Interpreted Language](http://polaris.cs.uiuc.edu/hpsl/abstracts/a7-ding.pdf)**. In proceedings of the First Workshop on the High Performance Scripting Languages, 2015. 105 | MRI 106 | 107 | # L. Lu, W. Ji, M. L. Scott. **[Dynamic Enforcement of Determinism in a Parallel Scripting Language](http://www.cs.rochester.edu/u/scott/papers/2014_PLDI_DPR.pdf)**. In proceedings of the 35th Conference on Programming Language Design and Implementation (PLDI), 2014. ([source code](https://github.com/RB-DPR/RB-DPR)) 108 | JRuby 109 | 110 | # R. Odaira, J. G. Castanos, H. Tomari. **[Eliminating Global Interpreter Locks in Ruby through Hardware Transactional Memory](http://researcher.watson.ibm.com/researcher/files/jp-ODAIRA/PPoPP2014_RubyGILHTM.pdf)**. In proceedings of the 19th Symposium on Principles and Practice of Parallel Programming (PPoPP), 2014. 111 | MRI 112 | 113 | # W. Ji, L. Lu, M. L. Scott. **[TARDIS: Task-level Access Race Detection by Intersecting Sets](http://wodet.cs.washington.edu/wp-content/uploads/2013/03/wodet2013-final9.pdf)**. In proceedings of the 4th Workshop on Determinism and Correctness in Parallel Programming (WoDet), 2013. 114 | JRuby 115 | 116 | # H. Nakagawa, K. Sasada. **[Design and Implementation of Efficient Interprocess Transfer and Sharing Mechanism for Ruby Objects](https://ipsj.ixsq.nii.ac.jp/ej/index.php?action=pages_view_main&active_action=repository_action_common_download&item_id=83710&item_no=1&attribute_id=1&file_no=1&page_id=13&block_id=8)**. In the IPSJ Journal of Programming (PRO), 2012. *In Japanese*. 117 | MRI 118 | 119 | # K. Sasada, S. Urabe, Y. Matsumoto, K Hiraki. **[Parallel Processing on Multiple Virtual Machine for Ruby](http://www.atdot.net/~ko1/activities/sasada_mvm_paper.pdf)**. In the IPSJ Journal of Programming (PRO), 2012. *In Japanese*. 120 | MRI 121 | 122 | # K. Sasada. **[The Improvement of Thread Implementation for Ruby Interpreter](http://www.atdot.net/~ko1/activities/prosym2011-thread_kaizen_paper.pdf)**. In the IPSJ Programming Symposium, 2011. *In Japanese*. 123 | MRI 124 | 125 | # K. Sasada, Y. Matsumoto, A. Maeda, M. Namiki. **[An Implementation of Parallel Threads for YARV: Yet Another RubyVM](http://www.atdot.net/~ko1/activities/yarv2007thread.pdf)**. In the IPSJ Journal of Programming (PRO), 2007. *In Japanese*. 126 | MRI 127 | 128 | ### Tooling 129 | 130 | # J. Kreindl, M. Rigger, H. Mössenböck. **[Debugging Native Extensions of Dynamic Languages](https://arxiv.org/pdf/1808.00823.pdf)**. In proceedings of 15th International Conference on Managed Languages & Runtimes (ManLang), 2018. 131 | TruffleRuby 132 | 133 | # M. Van De Vanter, C. Seaton, M. Haupt, C. Humer, T. Würthinger. **[Fast, Flexible, Polyglot Instrumentation Support for Debuggers and other Tools](https://arxiv.org/pdf/1803.10201v1.pdf)**. In The Art, Science, and Engineering of Programming, Vol. 2, No. 3, 2018. 134 | TruffleRuby 135 | 136 | # C. Seaton, M. L. Van De Vanter, M. Haupt. **[Debugging at Full Speed](http://www.lifl.fr/dyla14/papers/dyla14-3-Debugging_at_Full_Speed.pdf)**. In proceedings of the 8th Workshop on Dynamic Languages and Applications (DYLA), 2014. ([source code](http://lafo.ssw.uni-linz.ac.at/truffle/debugging/dyla14-debugging-artifact-0557a4f756d4.tar.gz)) 137 | TruffleRuby 138 | 139 | # T. Sunaga, K. Sasada. **[Design and Implementation of Real-time Profilers for scripting languages](https://www.jstage.jst.go.jp/article/jssst/29/4/29_4_95/_pdf)**. In the JSSST Computer Software (2012). *In Japanese*. 140 | MRI 141 | 142 | ### Type Systems 143 | 144 | # M. Kazerounian, N. Vazou, A. Bourgerie, J. S. Foster, E. Torlak. **[Refinement Types for Ruby](https://arxiv.org/pdf/1711.09281.pdf)**. In proceedings of the 19th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI), 2018. 145 | 146 | # B. M. Ren, J. S. Foster. **[Just-in-Time Static Type Checking for Dynamic Languages](http://www.cs.umd.edu/~jfoster/papers/pldi16.pdf)**. In proceedings of the 37th Conference on Programming Language Design and Implementation (PLDI), 2016. 147 | 148 | # B. M. Ren, J. Toman, T. S. Strickland, J. S. Foster. **[The Ruby Type Checker](http://www.cs.umd.edu/~jfoster/papers/oops13.pdf)**. In proceedings of the 28th Symposium on Applied Computing (SAC), 2013. 149 | 150 | # J. An, A. Chaudhuri, J. S. Foster, M. Hicks. **[Dynamic Inference of Static Types for Ruby](http://www.cs.umd.edu/~jfoster/papers/popl11.pdf)**. In proceedings of the 38th ACM Symposium on Principles of Programming Languages (POPL), 2011. 151 | 152 | # M. J. Edgar. **[Static Analysis for Ruby in the Presence of Gradual Typing](http://www.cs.dartmouth.edu/reports/TR2011-686.pdf)**. Bachelor's thesis, 2011. 153 | 154 | # M. Madsen, P. Sørensen, K. Kristensen. **[Ecstatic - Type Inference for Ruby Using the Cartesian Product Algorithm](http://projekter.aau.dk/projekter/files/61071016/1181807983.pdf)**. Master's thesis, Aalborg University, 2007. 155 | 156 | # M. Furr, J. An, J. S. Foster, M. Hicks. **[Static Typing for Ruby on Rails](http://www.cs.umd.edu/projects/PL/druby/papers/drails-ase09.pdf)**. In proceedings of the 24th Annual ACM Symposium on Applied Computing, 2009. 157 | 158 | # M. Furr, J. An, J. S. Foster. **[Work In Progress: an Empirical Study of Static Typing in Ruby](http://www.cs.umd.edu/projects/PL/druby/papers/druby-pilot-plateau09.pdf)**. In proceedings of the PLATEAU Workshop on Evaluation and Usability of Programming Languages and Tools, 2009. 159 | 160 | # M. Daly, V. Sazawal, J. S. Foster. **[Profile-Guided Static Typing for Dynamic Scripting Languages](http://www.cs.umd.edu/projects/PL/druby/papers/druby-oopsla09.pdf)**. In proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2009. 161 | 162 | # J. An, A. Chaudhuri, J. S. Foster. **[Static Type Inference for Ruby](http://www.cs.umd.edu/projects/PL/druby/papers/druby-oops09.pdf)**. In proceedings of the 24th IEEE/ACM International Conference on Automated Software Engineering, 2009. 163 | 164 | ### Software Engineering 165 | 166 | # T. Poncelet, L. Vigneron. **[The Phenomenal Gem - Putting Features as a Service on Rails](http://phenomenal-gem.com)**. Master's thesis, Université Catholique de Louvain, 2012. 167 | 168 | # S. Günther, M. Fischer. **[Metaprogramming in Ruby - A Pattern Catalog](http://www.hillside.net/plop/2010/papers/ACMVersions/papers/gunther-1.pdf)**. In proceedings of the 17th Conference on Pattern Languages of Programs, 2010. 169 | 170 | # S. Günther, T. Cleenewerck. **[Design Principles for Internal Domain-Specific Languages: A Pattern Catalog Illustrated by Ruby](http://www.hillside.net/plop/2010/papers/ACMVersions/papers/gunther-2.pdf)**. In proceedings of the 17th Conference on Pattern Languages of Programs, 2010. 171 | 172 | ### Security 173 | 174 | # J. P. Near, D. Jackson. **[Finding Security Bugs in Web Applications using a Catalog of Access Control Patterns](http://dspace.mit.edu/openaccess-disseminate/1721.1/102281)**. 38th International Conference on Software Engineering, 2016. 175 | 176 | ### Applications 177 | 178 | #### Artificial Intelligence 179 | 180 | # G. Cuccu, J. Togelius, Ph. Cudré-Mauroux. **[Playing Atari with Six Neurons](https://exascale.info/assets/pdf/cuccu2019aamas.pdf)**. In proceedings of the International Conference on Autonomous Agents and Multiagent Systems (AAMAS), 2019. *Implementation in Ruby.* 181 | 182 | # G. Cuccu. **[Extending the Applicability of Neuroevolution](https://exascale.info/assets/pdf/cuccu2018phd.pdf)**. PhD thesis, University of Fribourg, 2018. *Implementation in Ruby.* 183 | 184 | # J. Adam. **[Designing Emergence: automatic extraction of stigmergic algorithms from lattice structures](http://assets.lazyatom.com/thesis.pdf)**. PhD thesis, University of Essex, 2006. 185 | 186 | #### Bioinformatics 187 | 188 | # R. Smith, R. Williamson, D. Ventura, J. T. Prince. **[Rubabel: wrapping open Babel with Ruby](http://www.biomedcentral.com/content/pdf/1758-2946-5-35.pdf)**. Journal of Cheminformatics, 5(1), 35, 2013. 189 | 190 | # N. Goto, P. Prins, M. Nakao, R. Bonnal, J. Aerts, T. Katayama. **[Bioruby: bioinformatics software for the Ruby programming language](http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2951089/pdf/btq475.pdf)**. Bioinformatics, 26(20):2617–9, Oct 2010. 191 | 192 | #### Content Management 193 | 194 | # A. Tapiador, J. Salvachúa. **[Content Management in Ruby on Rails](http://singularities.org/atd/docs/Content_management_in_Ruby_on_Rails.pdf)**. Proceedings of the IADIS International Conference on Collaborative Technologies, 2011. 195 | 196 | #### Distributed Computing 197 | 198 | # J. Collins. **[Communication Paradigms for Mobile Ad Hoc Networks](https://escholarship.org/uc/item/8md1h50q)**. PhD thesis, 2014. 199 | 200 | #### Modeling and Simulation 201 | 202 | # W. Rząsa. **[Predicting Performance in a PaaS Environment: a Case Study for a Web Application](https://journals.agh.edu.pl/csci/article/view/1794)**. In the Computer Science Journal, volume 18, number 1, 2017. 203 | 204 | # W. Rząsa, M. Jamro, D. Rzonca. **[Improving Accuracy of a Network Model Basing on the Case Study of a Distributed System with a Mobile Application and an API](https://link.springer.com/chapter/10.1007/978-3-319-59767-6_2)**. In proceedings of the International Conference on Computer Networks, 2017. 205 | 206 | # W. Rząsa, D. Rzońca. **[Event-Driven Approach to Modeling and Performance Estimation of a Distributed Control System](https://link.springer.com/chapter/10.1007/978-3-319-39207-3_15)**. In proceedings of the International Conference on Computer Networks, 2016. 207 | 208 | # W. Rząsa. **[Simulation-Based Analysis of a Platform as a Service Infrastructure Performance from a User Perspective](https://link.springer.com/chapter/10.1007/978-3-319-19419-6_17)**. In proceedings of the International Conference on Computer Networks, 2015. 209 | 210 | # J. S. Cuadrado, J. G. Molina, M. M. Tortosa. **[RubyTL: A Practical, Extensible Transformation Language](http://link.springer.com/chapter/10.1007/11787044_13)**. Model Driven Architecture - Foundations and Applications, 4066, 2006. 211 | 212 | #### Robotics 213 | 214 | # B. Roman, C. Scholin, S. Jensen, E. Massion, R. Marin III, C. Preston, D. Greenfield, W. Jones, K. Wheeler. **[Controlling a Robotic Marine Environmental Sampler with the Ruby Scripting Language](http://jla.sagepub.com/content/12/1/56.full.pdf)**. JALA - Journal of the Association for Laboratory Automation, 12(1), 56-61, 2007. 215 | 216 | #### Social Networks 217 | 218 | # A. Tapiador, D. Carrera, J. Salvachúa. **[Social Stream, a social network framework](http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=6476557)**. Proceedings of International Conference on Future Generation Communication Technology (FGCT), 2012. 219 | 220 | # A. Tapiador. **[A framework for building distributed social network websites](http://oa.upm.es/21801/)**. PhD thesis, 2013. 221 | 222 | #### Software Engineering 223 | 224 | # A. Loh, W. R. Cook, T. van der Storm. **[Managed Data: Modular Strategies for Data Abstraction](http://www.cs.utexas.edu/~wcook/Drafts/2012/ensodata.pdf)**. In proceedings of *Onward!*, 2012. 225 | 226 | # T. van der Storm, A. Loh, W. R. Cook. **[Object Grammars: Compositional & Bidirectional Mapping Between Text and Graphs](http://www.cs.utexas.edu/~wcook/Drafts/2012/ensogrammars.pdf)**. In proceedings of the 5th International Conference on Software Language Engineering, 2012. 227 | 228 | #### Computer Vision 229 | 230 | # J. Wedekind. **[Efficient Implementations of Machine Vision Algorithms using a Dynamically Typed Programming Language](http://dx.doi.org/10.6084/m9.figshare.97244)**. PhD thesis, 2012. 231 | 232 | ## Standards 233 | 234 | # IPA Ruby Standardization WG. **[Programming Languages — Ruby (Draft)](https://www.ipa.go.jp/osc/english/ruby/)**. Final draft of the Ruby ISO standard, 2010. 235 | --------------------------------------------------------------------------------