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 language | English |
|---|---|
| Title of host publication | Proceeding ManLang '18 Proceedings of the 15th International Conference on Managed Languages & Runtimes Article No. 10 |
| Publisher | ACM New York, NY, USA |
| Number of pages | 7 |
| ISBN (Electronic) | 9781450364249 |
| ISBN (Print) | 978-1-4503-6424-9 |
| DOIs | |
| Publication status | Published - 12 Sept 2018 |
Publication series
| Name | ACM 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)
Projects
- 1 Active
-
Java VM Compiler Performance (Oracle)
Mössenböck, H. (PI)
01.01.2001 → 31.05.2026
Project: Contract research › Industry project
Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver