Ropes: an alternative to strings

Details

Event Software Practice and Experience

Authors

Atkinson, Russell
Plass, Michael F.
Technical Publications
December 31st 1995
Programming languages generally provide a `string' or `text' type to allow manipulation of sequences of characters. This type is usually of crucial importance, since it is normally mentioned in most interfaces between system components. We claim that the traditional implementations of strings, and often the supported functionality, are not well suited to such general-purpose use. They should be confined to applications with specific, and unusual, performance requirements. We present `ropes' or `heavyweight' strings as an alternative that, in our experience leads to systems that are more robust, both in functionality and in performance. Ropes have been in use in the Cedar environment almost since its inception, but this appears to be neither well-known, nor discussed in the literature. The algorithms have been gradually refined. We have also recently built a second similar, but somewhat lighter weight, C-language implementation, which is included in our publicly released garbage collector distribution. We describe the algorithms used in both, and give some performance measurements for the C version.

Citation

Boehm, H. J.; Atkinson, R.; Plass, M. F. Ropes: an alternative to strings. Software Practice and Experience. 1995 December; 25 (12): 1315-1330.

Additional information

Focus Areas

Our work is centered around a series of Focus Areas that we believe are the future of science and technology.

FIND OUT MORE
Licensing & Commercialization Opportunities

We’re continually developing new technologies, many of which are available for¬†Commercialization.

FIND OUT MORE
News

PARC scientists and staffers are active members and contributors to the science and technology communities.

FIND OUT MORE