日本でハリウッドVFXを制作! 「経産省アイディアボックス」 結果:  
●まとめエントリはこちら ●FAQ ●お問い合わせは左のメールフォームから

2009年3月20日金曜日

文字列とは何か? (2:言葉の定義)

実はこのエントリでは「char型変数」について書く予定だったが。

いろいろと調べていく内にだんだん深みにはまり、考えに整理がつかなくなったので、気分転換と思考をシンプルにするために「文字列」という言葉自体をもう少し掘り下げてみた。

<調査2>
--「文字」や「文」ではなく「文字列」という言葉が使われるのは何故か?を明らかにする。

前回のエントリで、「文字列」は「文字」の集まりを示すコンピュータ用語であることは調べてわかった。


「文字列」という言葉を自分の「文字列」変数を使用した経験から考えてみると、


「文字列」は、であることもあるし、単語であることもある、またただの記号であったり、ただ文字の羅列で特別な意味はなかったりもする。
ただ、文字を連続的に列挙している状態を示している。
別の言い方にすると、文字が順番に並んでいるという表現もできる。

順番に連続して並んでいることを示すには「列」という言葉は適切だと思う。

...が、もともとの言葉は「string」である。
なぜ、列を意味する「Line」ではなく「string」(糸、紐)なのか?

これらの言葉をワードパワー英英和辞典で調べてみた。

「Line」には、確かに「一列に並べる」とか、「整列する」といったような意味がある。

一方「string」には、「次から次へと続く一続きの人、物、出来事」という意味がある。
例として「a string of visitors」 というと「訪問者の列」となる。

ある人の後に他の人が続き、その後ろにまた別の人が続き..という具合に次々とつながっていく様子が連想される。
これは勝手な解釈だが、「Line」というとすでにまとまった数のものを一列に並べただけのようなイメージだが、「string」にはその長さよりも連続姓自体に焦点があるように感じる。


「文字列型変数」では、長さは未定だが、「文字」が「連続している」ことは、はっきりしている。
「長い」という点を強調する単語ではなく、「次から次へと連続した物」であるということを強調している「string」というのは、たしかに的を得ている。

(C言語では、文字列をひとまとまりの変数のように扱うためには特殊な方法を使う。
基本的には配列を利用して連続したメモリ領域に保管する。
この方法は、配列の連続性が文字「列(string)」という言葉にイメージ的につながってくる。)

これで自分なりには、「string(文字列)」という言葉が理解できた。

付け加えるなら、一文字だけなら本来は「文字列」ではなく「文字」だが、
「文字列」型には一文字だけでも代入できる。
これは一文字の長さの文字列として扱っていると考えればよいのだと思う。


 

0 件のコメント:

コメントを投稿