Skip to main navigation Skip to search Skip to main content

Specializing ropes for ruby

  • Kevin Menard
  • , Chris Seaton
  • , Benoit Daloze

Research output: Chapter in Book/Report/Conference proceedingConference proceedingspeer-review

Abstract

Ropes are an immutable data structure for representing character strings via a binary tree of operation-labeled nodes. Ropes were designed to perform well with large strings, and in particular, concatenation of large strings. We present our findings in using ropes to implement mutable strings in TruffleRuby, an implementation of the Ruby programming language using a self-specializing abstract syntax tree interpreter and dynamic compilation. We extend ropes to support Ruby language features such as encodings and refine operations to better support typical Ruby programs. Finally, we evaluate the performance of our implementation of ropes and demonstrate that they perform 0.9X − 9.4X as fast as byte array-based strings in benchmarks of common Ruby string operations.
Original languageEnglish
Title of host publicationProceeding ManLang '18 Proceedings of the 15th International Conference on Managed Languages & Runtimes Article No. 10
PublisherACM New York, NY, USA
Number of pages7
ISBN (Electronic)9781450364249
ISBN (Print)978-1-4503-6424-9
DOIs
Publication statusPublished - 12 Sept 2018

Publication series

NameACM International Conference Proceeding Series

Fields of science

  • 102 Computer Sciences
  • 102009 Computer simulation
  • 102011 Formal languages
  • 102013 Human-computer interaction
  • 102022 Software development
  • 102024 Usability research
  • 102029 Practical computer science

JKU Focus areas

  • Computation in Informatics and Mathematics
  • Engineering and Natural Sciences (in general)

Cite this