{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:33:25Z","timestamp":1750221205425,"version":"3.41.0"},"publisher-location":"New York, New York, USA","reference-count":22,"publisher":"ACM Press","license":[{"start":{"date-parts":[[2018,1,1]],"date-time":"2018-01-01T00:00:00Z","timestamp":1514764800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2018]]},"DOI":"10.1145\/3237009.3237026","type":"proceedings-article","created":{"date-parts":[[2018,8,30]],"date-time":"2018-08-30T14:00:37Z","timestamp":1535637637000},"page":"1-7","source":"Crossref","is-referenced-by-count":4,"title":["Specializing ropes for ruby"],"prefix":"10.1145","author":[{"given":"Kevin","family":"Menard","sequence":"first","affiliation":[{"name":"Oracle Labs"}]},{"given":"Chris","family":"Seaton","sequence":"additional","affiliation":[{"name":"Oracle Labs"}]},{"given":"Benoit","family":"Daloze","sequence":"additional","affiliation":[{"name":"Johannes Kepler University Linz"}]}],"member":"320","reference":[{"key":"key-10.1145\/3237009.3237026-1","unstructured":"Hans-J. Boehm, Russ Atkinson, and Michael Plass. 1995. Ropes: An Alternative to Strings.Softw. Pract. Exper.25, 12 (dec 1995), 1315."},{"key":"key-10.1145\/3237009.3237026-2","doi-asserted-by":"crossref","unstructured":"Carl Friedrich Bolz, Antonio Cuni, Maciej Fijalkowski, and Armin Rigo. 2009. Tracing the Meta-level: PyPy's Tracing JIT Compiler. InProceedings of the 4th Workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems (ICOOOLPS '09).ACM, 18--25.","DOI":"10.1145\/1565824.1565827"},{"key":"key-10.1145\/3237009.3237026-3","unstructured":"Brent Christian. 2018. JEP 254: Compact Strings. http:\/\/openjdk.java.net\/jeps\/254"},{"key":"key-10.1145\/3237009.3237026-4","unstructured":"Carl Friedrich Bolz. April 2016. Private correspondence with the authors."},{"key":"key-10.1145\/3237009.3237026-5","doi-asserted-by":"crossref","unstructured":"Craig Chambers, David Ungar, and Elgin Lee. 1989. An Efficient Implementation of SELF a Dynamically-Typed Object-Oriented Language Based on Prototypes. InProceedings on Object-Oriented Programming Systems, Languages and Applications (OOPSLA).ACM, 49--70.","DOI":"10.1145\/74877.74884"},{"key":"key-10.1145\/3237009.3237026-6","doi-asserted-by":"crossref","unstructured":"Benoit Daloze, Stefan Marr, Daniele Bonetta, and Hanspeter M&#246;ssenb&#246;ck. 2016. Efficient and Thread-safe Objects for Dynamically-typed Languages. InProceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2016).642--659.","DOI":"10.1145\/2983990.2984001"},{"key":"key-10.1145\/3237009.3237026-7","doi-asserted-by":"crossref","unstructured":"James R. Driscoll, Neil Sarnak, Daniel D. Sleator, and Robert E. Tarjan. 1986. Making Data Structures Persistent. InProceedings of the Eighteenth Annual ACM Symposium on Theory of Computing (STOC '86).109--121.","DOI":"10.1145\/12130.12142"},{"key":"key-10.1145\/3237009.3237026-8","doi-asserted-by":"crossref","unstructured":"Urs H&#246;lzle, Craig Chambers, and David Ungar. 1991. Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches. InECOOP '91: European Conference on Object-Oriented Programming.21--38.","DOI":"10.1007\/BFb0057013"},{"key":"key-10.1145\/3237009.3237026-9","doi-asserted-by":"crossref","unstructured":"Urs H&#246;lzle, Craig Chambers, and David Ungar. 1992. Debugging Optimized Code with Dynamic Deoptimization. InProceedings of the ACM SIGPLAN 1992 Conference on Programming Language Design and Implementation (PLDI '92).32--43.","DOI":"10.1145\/143095.143114"},{"key":"key-10.1145\/3237009.3237026-10","unstructured":"Butler W. Lampson. 1983. A Description of the Cedar Programming Language: A Cedar Language Reference Manual. Xerox PARC Technical Report CSL 83--15."},{"key":"key-10.1145\/3237009.3237026-11","doi-asserted-by":"crossref","unstructured":"Stefan Marr and Benoit Daloze. 2018. Few Versatile vs. Many Specialized Collections - How to design a collection library for exploratory programming?. InProceedings of the 4th Programming Experience Workshop (PX\/18).ACM.","DOI":"10.1145\/3191697.3214334"},{"key":"key-10.1145\/3237009.3237026-12","doi-asserted-by":"crossref","unstructured":"Stefan Marr, Chris Seaton, and Stephane Ducasse. 2015. Zero-overhead Metaprogramming: Reflection and Metaobject Protocols Fast and Without Compromises. InProceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2015).545--554.","DOI":"10.1145\/2737924.2737963"},{"key":"key-10.1145\/3237009.3237026-13","unstructured":"Yukihiro Matsumoto, Koichi Sasada, Nobuyoshi Nakada, et al. 2018. MRI - Matz's Ruby Interpreter - The Ruby Programming Language. https:\/\/www.ruby-lang.org\/en\/"},{"key":"key-10.1145\/3237009.3237026-14","unstructured":"Charles Nutter, Thomas Enebo, Ola Bini, Nick Sieger, et al. 2018. JRuby - The Ruby Programming Language on the JVM. http:\/\/jruby.org\/"},{"key":"key-10.1145\/3237009.3237026-15","unstructured":"Evan Phoenix, Brian Shirai, Ryan Davis, Dirkjan Bussink, et al. 2018. Rubinius - An Implementation of Ruby Using the Smalltalk-80 VM Design. https:\/\/github.com\/rubinius\/rubinius"},{"key":"key-10.1145\/3237009.3237026-16","unstructured":"Chris Seaton. 2015.Specialising Dynamic Techniques for Implementing The Ruby Programming Language.Ph.D. Dissertation. The University of Manchester."},{"key":"key-10.1145\/3237009.3237026-17","unstructured":"Chris Seaton, Benoit Daloze, Kevin Menard, Petr Chalupa, Brandon Fish, and Duncan MacGregor. 2018. TruffleRuby - A High Performance Implementation of the Ruby Programming Language. https:\/\/github.com\/oracle\/truffleruby"},{"key":"key-10.1145\/3237009.3237026-18","doi-asserted-by":"crossref","unstructured":"Lukas Stadler, Thomas W&#252;rthinger, and Hanspeter M&#246;ssenb&#246;ck. 2014. Partial Escape Analysis and Scalar Replacement for Java. InProceedings of Annual IEEE\/ACM International Symposium on Code Generation and Optimization (CGO 14).165--174.","DOI":"10.1145\/2581122.2544157"},{"key":"key-10.1145\/3237009.3237026-19","unstructured":"Andreas W&#246;&#223;, Christian Wirth, Danilo Ansaloni, Daniele Bonetta, et al. 2018. Graal.js - A JavaScript implementation built on GraalVM. https:\/\/github.com\/graalvm\/graaljs"},{"key":"key-10.1145\/3237009.3237026-20","doi-asserted-by":"crossref","unstructured":"Thomas W&#252;rthinger, Christian Wimmer, Christian Humer, Andreas W&#246;&#223;, Lukas Stadler, Chris Seaton, Gilles Duboscq, Doug Simon, and Matthias Grimmer. 2017. Practical Partial Evaluation for High-performance Dynamic Language Runtimes. InProceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2017).662--676.","DOI":"10.1145\/3062341.3062381"},{"key":"key-10.1145\/3237009.3237026-21","doi-asserted-by":"crossref","unstructured":"Thomas W&#252;rthinger, Christian Wimmer, Andreas W&#246;&#223;, Lukas Stadler, Gilles Duboscq, Christian Humer, Gregor Richards, Doug Simon, and Mario Wolczko. 2013. One VM to Rule Them All. InProceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming &#38; Software (Onward!'13).187--204.","DOI":"10.1145\/2509578.2509581"},{"key":"key-10.1145\/3237009.3237026-22","doi-asserted-by":"crossref","unstructured":"Thomas W&#252;rthinger, Andreas W&#246;&#223;, Lukas Stadler, Gilles Duboscq, Doug Simon, and Christian Wimmer. 2012. Self-Optimizing AST Interpreters. InProceedings of the 8th Dynamic Languages Symposium (DLS 12).73--82.","DOI":"10.1145\/2384577.2384587"}],"event":{"name":"the 15th International Conference","start":{"date-parts":[[2018,9,12]]},"number":"15","location":"Linz, Austria","end":{"date-parts":[[2018,9,13]]},"acronym":"ManLang '18"},"container-title":["Proceedings of the 15th International Conference on Managed Languages &amp; Runtimes - ManLang '18"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3237009.3237026","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/dl.acm.org\/ft_gateway.cfm?id=3237026&ftid=1999829&dwn=1","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T01:39:34Z","timestamp":1750210774000},"score":1,"resource":{"primary":{"URL":"http:\/\/dl.acm.org\/citation.cfm?doid=3237009.3237026"}},"subtitle":[],"proceedings-subject":"Managed Languages & Runtimes","short-title":[],"issued":{"date-parts":[[2018]]},"references-count":22,"URL":"https:\/\/doi.org\/10.1145\/3237009.3237026","relation":{},"subject":[],"published":{"date-parts":[[2018]]}}}