From: matz@... (Yukihiro Matsumoto) Date: 2000-11-15T13:55:55+09:00 Subject: [ruby-dev:11527] Re: Proposal of "Array of CharCode" まつもと ゆきひろです In message "[ruby-dev:11521] Re: Proposal of "Array of CharCode"" on 00/11/15, "たけ(tk)" writes: |(1)文字列中のN文字目の文字にランダムにアクセスするようなスクリプトの |とき。 このよう場合には、こちらの方が速いことは全面的に認めます。が、 今問題にしているのは速度のことよりも、これは前提を崩すほどの トレードオフかということです。 |(2)文字集合が同じでエンコードだけが異なる場合の処理の共通化。 そういうプレーン(で1文字4バイト)の文字コード系の存在は否定し ません。が、そういう話なんですか? |(3)文字コードでの変換の方が簡単な場合。 これちょっと分かりませんでした。 | (4)前寺さん(TM-Editor という、多言語エディタの作者)の経験談は次の |とおり。 <中略> いや、この方のおっしゃることは分かるんですけど、エディタとス クリプト言語では重点の置き方はかなり違うと思います。エディタ では、ファイルを読み込んだ時点で内部構造に変換することは非常 に自然ですが、スクリプト言語ではそれは仮定できないと思います。 だから工夫が必要なわけで。 たけさんのおっしゃることはよく分かんないです。UCS4とかあるい は別の文字集合でも構いませんが、1文字4バイトの固定長文字列を 対象とする文字コード系*も*扱えるようにすることに対して反対す る理由はひとつもないです。が、それを標準で提供するかどうかは 別の問題で、おそらく提供しないと思います。私が今回考えている のは、そのような文字コード系も後付で定義できる「仕組み」とは なにかということです。 極端な話、仕組みさえできれば個々の文字コード系については、ど うでも良いと言っても良いです。いつでも作れるから。 もちろん、私は全知ではないんで不適切な仕組みを作っちゃうかも しれなくて、だからこそ実際に使う(可能性のある)みなさんの意見 を聞いているわけです。 | * ユーザーサイドから見ると「DBCS + (&M;)Mojikyo Tag=DBCS文字列+文 |字鏡番号を指定するタグ」が扱いやすいとのこと。TM-Editor が吐き出したファ |イルを Ruby で扱えるようになると、うれしい。 ふーむ、このTM-Editorってのが、たけさんの発想の原点なんです かね。このファイル(外部表現)はそのまま扱えそうにないんで、な んらかの方法で内部表現に変換して扱えることは可能であって欲し いです。 | 「処理モジュール」(CharCodeType)に次のメソッドがあれば、 簡単に作れ |ると思います。 | |(1)decode バイト列を受け取って、文字コードの配列を返す |(2)encode 文字コードの配列を受け取って、バイト列を返す。 ちゅーか、バイト列から1文字(コードポイント)ずつ取り出すとい う処理は本質なので、decode/encode処理は(それを関数として独立 させるかどうかはともかく)簡単に実現できるでしょう。 が、decode/encodeがあれば、本当にたけさんのおっしゃることが 簡単に実現できるかどうかは私には分かりません。 まつもと ゆきひろ /:|)