ぴゅーもんブログ

カナダ生まれの日本育ち白イルカ(ベルーガ)のぬいぐるみぴゅーもんのブログです、ハワイにもいったよ〜(不定期のんびり更新)

オリジン

オリジン弁当のことではない。最近、意外とこの言葉が、パンピーに知られていないことに気づかされました。プログラマであれば、常識範囲?ですか?では、オリジンについて簡単に整理します。
プログラムで扱うデータの構造に配列というものがあります。これは、データを固まりで扱うものです。たとえば、配列Aは要素に「M」「C」「C」という3文字が格納された状態のもをさします。このとき配列A内の「M」の文字を参照したいときに配列Aの何番目の文字という形で参照します。プログラム的に記述すると、A[0]となります。このときの"0"が添え字と呼ばれるもので、配列内の何番目を参照したいかを決めるためのものです。ここで、なぜ数値の0なのでしょう。これは、プログラミング言語取り決めが、配列の1番目の要素は添え字0で表しますよって事だからです。プログラミング言語やその設定によっては、添え字を"1"とすることもできます。
現実世界に近い考え方では、"1"の方ではないでしょうか?ものを数えるのに常に"0"からは数えないですよね。もともと、人類に「0」という概念はなかったんですよね。このことがオリジンと関係します。つまり、最初の要素を"0"とすることを0オリジン、"1"とすることを1オリジンと呼ぶのです。おそらくorigin(起源)からきているのでしょう。どこを始まりにするかということですね。0ベース、1ベースなどと呼ぶ場合もあります。
プログラミングする上で、この感覚のずれによるバグは良くあることですのでみなさん注意しましょう。
最近の言語はマイナスまで添え字を利用できるので、現実のデータの取り扱いにあった設計が出来ますね。データあらゆるとこで1番目データ「1」番目だぞと表示などしている場合に0オリジンであると、常に表示で使用している「数値-1」を添え字として扱う処理が発生してしまいますので、1オリジンとするか、配列の要素0を捨てて無視するようにするのがよいでしょう。
このへんこだわり持っている人多そうですね。
参考
始まりはいつもゼロ? - 0オリジンと1オリジン
P.S.一般人向けに書き始めたつもりがプログラマよりになってしまいました。