Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Data Structures for Text Sequences (1998) [pdf] (unm.edu)
103 points by fabriceleal on March 15, 2015 | hide | past | favorite | 7 comments


I invented the "piece table" data structure independently, while writing a DOS text editor in 1990s, presented it at a symposium in my faculty and got laughed off. 20 years later I stumble into this PDF describing it as a worthwhile data structure. LOL


Since I've recently implemented a text editor based on a piece table myself, I spent some time researching where the concept was first used.

One of the first references (1974) I found was to the Bravo text editor for the Alto from Xerox PARC.

"Alto User’s Handbook" http://research.microsoft.com/en-us/um/people/blampson/15a-A...

Then in 1985 a text editor called Lara by J. Gutknecht who in the following years joined Wirth to build Project Oberon whose text management system is also based on a piece table.

"Concepts of the text editor Lara" http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.98....

If somebody as other, in particular earlier references, that would be interesting.

My recent implementation: https://github.com/martanne/vis/blob/master/text.c


I don't think I ever really understood what a descriptor was until reading this, and now I feel really stupid but at the same time grateful!


Is the typo in the first sentence (the letters in "to" are reversed) a joking reference to the the topic "text SEQUENCE"?


Good question. It was asked (but never answered) last time this was posted:

https://news.ycombinator.com/item?id=8828207

Personally, I think it must be a joke. Besides the fact that it would have been noticed and corrected by now, it's just not a "typo" kind of error (i.e. a common transposition).


This is very interesting for someone who dreams about making a text editor!


My alma mater.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: