タグ

bufferとデータ構造に関するterurouのブックマーク (4)

  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

  • テキストエディタ用バッファの各種データ構造とその評価

    概要 テキストエディタのためのバッファの各種データ構造について述べ、 それらを筆者がC++で STLに準じたインタフェースを持つテンプレートクラスとして実装したものについて、 パフォーマンス(処理速度、使用メモリ量)計測を行った結果を報告する。 筆者が実際にテキストエディタを実装する場合にどのデータ構造がよいか、という視点で評価を行う。 目次: はじめに バッファに要求される機能・性能 バッファクラスのインタフェース パフォーマンス計測 各種データ構造 gap_vector<wchar_t> VS. list<wstring> gap_vector<wstring> 終わりに 参考文献 はじめに テキストエディタは、簡単に言うと、シーケンシャルなテキスト情報を保持し、ユーザの指示により内容を表示、修正するプログラムである。 上図のような構造はオブジェクト指向な設計と親和性が高い。 テキスト

  • w.l.o.g. ギャップバッファ

    04:40 04/06/04 ピーステーブル PieceTable とも言う。文字列の Piece(小片)を繋げて、 一つの巨大な文書を表現する方式。 検索すると引っかかる文書のほとんどが AbiWord 関係なので、 このワープロソフトの主要な内部データ構造ということなのかな。 他に、MS-WordやOpenOffice.org関連の文書にも登場していて、 基的に単なるテキストエディタよりは、文字に付加情報をくっつける系の 編集ソフトに使われる場面が今のところ多いみたいです。 余談ですがAbiWordは、綱渡り的にですがBeOS版の開発が続いている貴重なワープロソフトなのです。感謝感謝。 概要 ファイルを読み込んだとしましょう。ABCDEFG、という7文字のファイル。 とりあえず、7文字分のOrigという名前のバッファを用意して、そこに格納します。 それと別に、Addという名前の空のバ

    terurou
    terurou 2010/02/15
    PieceTableの基本構造解説
  • 論文読み Charles Crowley. Data Structures for Text Sqeuences. 1998 - 言語ゲーム

    http://ned.rubyforge.org/doc/crowley98data.ps.gz 他に面白いリンクがここに一杯ある。 http://ned.rubyforge.org/ 結論 テキストエディタのデータ構造としては、piece table method が一番良い。 感想 今更テキストエディタを自分で作りたいという変わった人は読んだ方が良いです。この論文では、テキストをメモリやディスクでどのように保持するかという問題を、挿入、削除、位置特定の速度という観点から調べています。 位置特定とは、文を前から数えてどの位置にどの文字があるか調べるという問題ですが、ある位置を調べた後、次に調べたくなるのは前回調べた位置のすぐそばである可能性が高いという前提に立っています。 表示、例えばテキスト回り込みやプロポーショナルフォントの問題には触れていません。 UTF-8 のような可変長エンコー

    論文読み Charles Crowley. Data Structures for Text Sqeuences. 1998 - 言語ゲーム
  • 1