Re:Rope Science – Computer science concepts behind the Xi ed...
by nirvdrum on Monday April 17, 2017 @10:40AM
(#14131178)
If you're talking about ropes in general, Boehm et al. [1] is the authoritative source. There's a wikipedia page, too, but I find it way more confusing than it needs to be.
If you're interested in applications to other domains, we use ropes as the basis of the String data type in TruffleRuby. TruffleRuby is open source, so you can see that implementation by checking out the code in the org.truffleruby.core.rope package [2]. We had to extend the basic idea of ropes to better match Ruby's semantics, such as making them encoding-aware. I gave a talk about it at last year's RubyKaigi [3] that dives into real world trade-offs.
There are also a lot of various rope implementations out there. You probably can find one for your language of choice.
If you're interested in applications to other domains, we use ropes as the basis of the String data type in TruffleRuby. TruffleRuby is open source, so you can see that implementation by checking out the code in the org.truffleruby.core.rope package [2]. We had to extend the basic idea of ropes to better match Ruby's semantics, such as making them encoding-aware. I gave a talk about it at last year's RubyKaigi [3] that dives into real world trade-offs.
There are also a lot of various rope implementations out there. You probably can find one for your language of choice.
[1] - http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.14....
[2] - https://github.com/graalvm/truffleruby
[3] - https://www.youtube.com/watch?v=UQnxukip368